[Title] Changed some build-svr command shows error message when no DB
authordonghee yang <donghee.yang@samsung.com>
Wed, 17 Apr 2013 04:53:45 +0000 (13:53 +0900)
committerdonghee yang <donghee.yang@samsung.com>
Wed, 17 Apr 2013 04:53:45 +0000 (13:53 +0900)
src/build_server/BuildServer.rb
src/build_server/BuildServerController.rb
src/build_server/BuildServerException.rb
test/build-server.basic2/build-svr-23.testcase [new file with mode: 0644]
test/build-server.basic2/testsuite

index b8eee8d7a815086e20a661b51c9899130fb9955c..6c0c5675e0de235b1b41cadced1045285fd0e534 100644 (file)
@@ -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
index acd06db4f06763aba0a155c2b0a1b7eb98d683f5..209f523a4a01328673f61d548d4334399e2866c0 100644 (file)
@@ -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
index 08d82a2d2fe8c0ec7e3de4fc72eb329856193580..ba762f581da03627f14950b81b7d123a12e594ec 100644 (file)
@@ -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 (file)
index 0000000..ce6af1a
--- /dev/null
@@ -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!
index 05f65d24dcd6df5da016c6bf1e74ad5f299326f6..3b9851334a44c6c785ba5b4f546a0e5d3485aa78 100644 (file)
@@ -17,3 +17,4 @@ build-svr-18.testcase
 build-svr-19.testcase
 build-svr-20.testcase
 build-svr-21.testcase
+build-svr-23.testcase