From 5689e024a1893c0b4ab8059ef8a8094184a608fc Mon Sep 17 00:00:00 2001 From: donghee yang Date: Wed, 17 Apr 2013 13:53:45 +0900 Subject: [PATCH] [Title] Changed some build-svr command shows error message when no DB --- src/build_server/BuildServer.rb | 6 +- src/build_server/BuildServerController.rb | 168 +++++++++++------- src/build_server/BuildServerException.rb | 7 + .../build-server.basic2/build-svr-23.testcase | 41 +++++ test/build-server.basic2/testsuite | 1 + 5 files changed, 156 insertions(+), 67 deletions(-) create mode 100644 test/build-server.basic2/build-svr-23.testcase diff --git a/src/build_server/BuildServer.rb b/src/build_server/BuildServer.rb index b8eee8d..6c0c567 100644 --- a/src/build_server/BuildServer.rb +++ b/src/build_server/BuildServer.rb @@ -856,8 +856,12 @@ class BuildServer BuildCommServer.send(conn, "=JOB_STATUS,#{job_status}") end - if job.status.eql? "FINISHED" or job.status.eql? "ERROR" or job.status.eql? "CANCELED" then + if not log.return_if_eof and + (job.status.eql? "FINISHED" or job.status.eql? "ERROR" or job.status.eql? "CANCELED") then + log.return_if_eof = true + # this will make a time for finishing log write + sleep 2 end else if log.eof? then diff --git a/src/build_server/BuildServerController.rb b/src/build_server/BuildServerController.rb index acd06db..209f523 100644 --- a/src/build_server/BuildServerController.rb +++ b/src/build_server/BuildServerController.rb @@ -125,8 +125,10 @@ class BuildServerController # start server def self.start_server( id, port = 2222 ) server = get_server(id) - #migrate_db(server) - server.jobmgr.cancel_broken_status + + if server.has_db? then + server.jobmgr.cancel_broken_status + end # write run port server_dir = "#{BuildServer::CONFIG_ROOT}/#{server.id}" @@ -149,7 +151,7 @@ class BuildServerController # server server = get_server(id) - migrate_db(server) + client = BuildCommClient.create( "127.0.0.1", server.port ) if client.nil? then puts "Server is not running!" @@ -187,7 +189,7 @@ class BuildServerController # server server = get_server(id) - migrate_db(server) + client = BuildCommClient.create( "127.0.0.1", server.port ) if client.nil? then puts "Server is not running!" @@ -220,62 +222,15 @@ class BuildServerController return true end - # request upgrade friends build server - def self.request_upgrade_server( id ) - - server = get_server(id) - migrate_db(server) - server_dir = "#{BuildServer::CONFIG_ROOT}/#{id}" - - if File.exist? "#{server_dir}/friends" then - File.open( "#{server_dir}/friends", "r" ) do |f| - f.each_line do |l| - if l.split(",").count < 2 then next end - ip = l.split(",")[0].strip - port = l.split(",")[1].strip - - client = BuildCommClient.create( ip, port ) - if client.nil? then - puts "Friend Server #{ip}:#{port} is not running!" - next - end - # send request - upgrade_ok = false - if client.send "UPGRADE|#{server.password}" then - # recevie & print - mismatched = false - result = client.read_lines do |l2| - puts l2 - if l2.include? "Password mismatched!" then - mismatched = true - end - end - if result and not mismatched then - upgrade_ok = true - end - end - - # terminate - client.terminate - - if upgrade_ok then - puts "Friend Server #{ip}:#{port} upgrade requested!" - else - puts "Friend Server #{ip}:#{port} upgrade failed!" - end - end - end - else - puts "No Friend Server." - end - - return true - end - # add friend server def self.add_remote_server( id, ip, port ) server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # add @@ -292,6 +247,11 @@ class BuildServerController # remove friend server def self.remove_remote_server( id, ip, port ) server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # add @@ -307,8 +267,12 @@ class BuildServerController # add supported target os def self.add_target_os( id, os_name ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # add @@ -324,8 +288,12 @@ class BuildServerController # remove supported target os def self.remove_target_os( id, os_name ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # add @@ -343,8 +311,12 @@ class BuildServerController # add distribution def self.add_distribution( id, dist_name, pkgsvr_url, pkgsvr_ip, pkgsvr_port, pkgsvr_password ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # add @@ -360,8 +332,12 @@ class BuildServerController # remove distribution def self.remove_distribution( id, dist_name ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # remove @@ -377,8 +353,12 @@ class BuildServerController # lock distribution def self.lock_distribution(id, dist_name) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # remove @@ -394,8 +374,12 @@ class BuildServerController # unlock distribution def self.unlock_distribution(id, dist_name) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # remove @@ -412,6 +396,11 @@ class BuildServerController # add remote package server def self.add_sync_package_server(id, url, dist_name) server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # check distribution @@ -444,6 +433,11 @@ class BuildServerController # remove remote package server def self.remove_sync_package_server(id, url, dist_name) server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # check distribution @@ -464,8 +458,12 @@ class BuildServerController # add project def self.add_project( id, project_name, git_repos, git_branch, remote_server_id, passwd, os_string, dist_name ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # get supported os for project. @@ -512,8 +510,12 @@ class BuildServerController # add binary project def self.add_binary_project( id, project_name, pkg_name, passwd, os_string, dist_name ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # get supported os for project. @@ -555,8 +557,12 @@ class BuildServerController # remove project def self.remove_project( id, project_name, dist_name ) - # get server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # check distribution @@ -575,8 +581,12 @@ class BuildServerController def self.register_package(id, file_path, dist_name) - # server server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) # check distribution @@ -671,6 +681,11 @@ class BuildServerController # server def self.query_server( id ) server = get_server(id) + + if not server.has_db? then + puts BuildServerException.get_message("ERR021") + return false + end migrate_db(server) server.prjmgr.load() @@ -715,6 +730,17 @@ class BuildServerController end server = get_server(id) + + if not server.has_db? and attr != "GIT_BIN_PATH" and attr != "PASSWORD" and + attr != "FTP_ADDR" and attr != "FTP_PORT" and + attr != "FTP_USERNAME" and attr != "FTP_PASSWD" and + attr != "DB_DSN" and attr != "DB_USER" and + attr != "DB_PASSWD" and attr != "PASSWORD" then + + puts BuildServerException.get_message("ERR021") + return false + end + case attr when "GIT_BIN_PATH" server.git_bin_path = value @@ -777,6 +803,16 @@ class BuildServerController end server = get_server(id) + if not server.has_db? and attr != "GIT_BIN_PATH" and attr != "PASSWORD" and + attr != "FTP_ADDR" and attr != "FTP_PORT" and + attr != "FTP_USERNAME" and attr != "FTP_PASSWD" and + attr != "DB_DSN" and attr != "DB_USER" and + attr != "DB_PASSWD" and attr != "PASSWORD" then + + puts BuildServerException.get_message("ERR021") + return false + end + case attr when "GIT_BIN_PATH" puts server.git_bin_path diff --git a/src/build_server/BuildServerException.rb b/src/build_server/BuildServerException.rb index 08d82a2..ba762f5 100644 --- a/src/build_server/BuildServerException.rb +++ b/src/build_server/BuildServerException.rb @@ -24,6 +24,8 @@ class BuildServerException < Exception "ERR019" => "Receiving data failed!", "ERR020" => "Sending data failed!", + "ERR021" => "No DB exists and create(migrate) DB first!", + "ERR900" => "Cancel event received!", "ERR901" => "Job already upload status. Cancel failed!" } @@ -39,4 +41,9 @@ class BuildServerException < Exception return "#{prefix}#{@@err_msgs[@err_code]}" end end + + + def self.get_message(err_code, prefix = "Error: ") + return "#{prefix}#{@@err_msgs[err_code]}" + end end diff --git a/test/build-server.basic2/build-svr-23.testcase b/test/build-server.basic2/build-svr-23.testcase new file mode 100644 index 0000000..ce6af1a --- /dev/null +++ b/test/build-server.basic2/build-svr-23.testcase @@ -0,0 +1,41 @@ +#PRE-EXEC +rm -rf buildsvr01 +mkdir buildsvr01 +cd buildsvr01; ../../../build-svr create -n testserver3 -u `pwd`/../pkgsvr01/unstable -d 127.0.0.1:3333 -t ftp://ftpuser:ftpuser@172.21.111.124 +#EXEC +../../build-svr add-dist -n testserver3 -D BASE -u `pwd`/../pkgsvr01/unstable -d 127.0.0.1:3333 +../../build-svr remove-dist -n testserver3 -D BASE +../../build-svr query -n testserver3 +../../build-svr add-svr -n testserver3 -d 127.0.0.1:2223 +../../build-svr remove-svr -n testserver3 -d 127.0.0.1:2223 +../../build-svr add-os -n testserver3 -o ubuntu-32 +../../build-svr remove-os -n testserver3 -o ubuntu-32 +../../build-svr lock-dist -n testserver3 -D BASE +../../build-svr unlock-dist -n testserver3 -D BASE +../../build-svr add-sync -n testserver3 -u `pwd`/../pkgsvr01/unstable +../../build-svr remove-sync -n testserver3 -u `pwd`/../pkgsvr01/unstable +../../build-svr add-prj -n testserver3 -N testx -g test_git -b test_branch -o ubuntu-32 +../../build-svr remove-prj -n testserver3 -N testx +../../build-svr register -n testserver3 -P bin/bin_0.0.0_ubuntu-32.zip +../../build-svr set-attr -n testserver3 -A MAX_WORKING_JOBS -V 3 +../../build-svr get-attr -n testserver3 -A MAX_WORKING_JOBS +#POST-EXEC +../../build-svr remove -n testserver3 +rm -rf buildsvr01 +#EXPECT +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! +Error: No DB exists and create(migrate) DB first! diff --git a/test/build-server.basic2/testsuite b/test/build-server.basic2/testsuite index 05f65d2..3b98513 100644 --- a/test/build-server.basic2/testsuite +++ b/test/build-server.basic2/testsuite @@ -17,3 +17,4 @@ build-svr-18.testcase build-svr-19.testcase build-svr-20.testcase build-svr-21.testcase +build-svr-23.testcase -- 2.34.1