From: donghee yang Date: Mon, 8 Oct 2012 01:09:09 +0000 (+0900) Subject: [Title] Added new sub-commands "set-attr", "get-attr" into "build-svr" X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c4a506b3bb0997f07fc176035aea7a2a0f1d8f49;p=sdk%2Ftools%2Fsdk-build.git [Title] Added new sub-commands "set-attr", "get-attr" into "build-svr" --- diff --git a/build-svr b/build-svr index a3ee021..6a86283 100755 --- a/build-svr +++ b/build-svr @@ -189,6 +189,12 @@ begin when "query" BuildServerController.query_server( option[:name] ) + when "set-attr" + BuildServerController.set_server_attribute( option[:name], option[:attr], option[:value] ) + + when "get-attr" + BuildServerController.get_server_attribute( option[:name], option[:attr] ) + else raise RuntimeError, "input option incorrect : #{option[:cmd]}" end diff --git a/src/build_server/BuildServerController.rb b/src/build_server/BuildServerController.rb index b7ac551..9a6d05d 100644 --- a/src/build_server/BuildServerController.rb +++ b/src/build_server/BuildServerController.rb @@ -652,6 +652,96 @@ class BuildServerController end + # server + def self.set_server_attribute( id, attr, value ) + result = true + + if attr.nil? or attr.empty? or value.nil? or value.empty? then + puts "Attribute/Value must be specified!" + return false + end + + server = get_server(id) + case attr + when "GIT_BIN_PATH" + server.git_bin_path = value + when "MAX_WORKING_JOBS" + server.jobmgr.max_working_jobs = value.to_i + when "JOB_LOG_URL" + server.job_log_url = value + when "SEND_MAIL" + server.send_mail = value + when "TEST_TIME" + server.test_time = value.to_i + when "PASSWORD" + server.password = value + when "JOB_KEEP_TIME" + server.keep_time = value.to_i + when "FTP_ADDR" + server.ftp_addr = value + when "FTP_PORT" + server.ftp_port = value + when "FTP_USERNAME" + server.ftp_username = value + when "FTP_PASSWD" + server.ftp_passwd = value + when "CHANGELOG_CHECK" + server.changelog_check = value + else + puts "Wrong attribute name!" + result = false + end + + if result then write_server_config( server ) end + + return result + end + + + # server + def self.get_server_attribute( id, attr ) + result = true + + if attr.nil? or attr.empty? then + puts "Attribute name must be specified!" + return false + end + + server = get_server(id) + case attr + when "GIT_BIN_PATH" + puts server.git_bin_path + when "MAX_WORKING_JOBS" + puts "#{server.jobmgr.max_working_jobs}" + when "JOB_LOG_URL" + puts server.job_log_url + when "SEND_MAIL" + puts server.send_mail + when "TEST_TIME" + puts server.test_time + when "PASSWORD" + puts server.password + when "JOB_KEEP_TIME" + puts "#{server.keep_time}" + when "FTP_ADDR" + puts server.ftp_addr + when "FTP_PORT" + puts server.ftp_port + when "FTP_USERNAME" + puts server.ftp_username + when "FTP_PASSWD" + puts server.ftp_passwd + when "CHANGELOG_CHECK" + puts server.changelog_check + else + puts "Wrong attribute name!" + result = false + end + + return result + end + + ##################### private ##################### diff --git a/src/build_server/BuildServerOptionParser.rb b/src/build_server/BuildServerOptionParser.rb index f385807..8a59969 100644 --- a/src/build_server/BuildServerOptionParser.rb +++ b/src/build_server/BuildServerOptionParser.rb @@ -49,6 +49,8 @@ class BuildServerUsage FULLBUILD="build-svr fullbuild -n [--dist ]" REGISTER="build-svr register -n -P [--dist ]" QUERY="build-svr query -n " + SET_ATTR="build-svr set-attr -n -A -V " + GET_ATTR="build-svr get-attr -n -A " end def option_error_check( options ) @@ -158,6 +160,20 @@ def option_error_check( options ) if options[:name].nil? or options[:name].empty? then raise ArgumentError, "Usage: " + BuildServerUsage::QUERY end + + when "set-attr" + if options[:name].nil? or options[:name].empty? or + options[:attr].nil? or options[:attr].empty? or + options[:value].nil? or options[:value].empty? then + raise ArgumentError, "Usage: " + BuildServerUsage::SET_ATTR + end + + when "get-attr" + if options[:name].nil? or options[:name].empty? or + options[:attr].nil? or options[:attr].empty? then + raise ArgumentError, "Usage: " + BuildServerUsage::SET_ATTR + end + else raise ArgumentError, "Input is incorrect : #{options[:cmd]}" end @@ -186,6 +202,8 @@ def option_parse + "\t" + "register Register the package to the build-server." + "\n" \ + "\t" + "fullbuild Build all your projects and upload them to package server." + "\n" \ + "\t" + "query Show build server configuration." + "\n" \ + + "\t" + "set-attr Set build server atribute." + "\n" \ + + "\t" + "get-attr Get build server atribute." + "\n" \ + "\n" + "Subcommand usage:" + "\n" \ + "\t" + BuildServerUsage::CREATE + "\n" \ + "\t" + BuildServerUsage::REMOVE + "\n" \ @@ -205,6 +223,8 @@ def option_parse + "\t" + BuildServerUsage::FULLBUILD + "\n" \ + "\t" + BuildServerUsage::REGISTER + "\n" \ + "\t" + BuildServerUsage::QUERY + "\n" \ + + "\t" + BuildServerUsage::SET_ATTR + "\n" \ + + "\t" + BuildServerUsage::GET_ATTR + "\n" \ + "\n" + "Options:" + "\n" optparse = OptionParser.new(nil, 32, ' '*8) do|opts| @@ -272,6 +292,14 @@ def option_parse options[:fdomain] = domain end + opts.on( '-A', '--attr ', 'attribute' ) do |attr| + options[:attr] = attr + end + + opts.on( '-V', '--value ', 'value' ) do |value| + options[:value] = value + end + opts.on( '-h', '--help', 'display this information' ) do opts.help.split("\n").each {|op| puts op if not op.include? "--CHILD"} exit @@ -298,7 +326,8 @@ def option_parse cmd.eql? "add-sync" or cmd.eql? "remove-sync" or cmd.eql? "add-prj" or cmd.eql? "remove-prj" or cmd.eql? "fullbuild" or cmd.eql? "register" or - cmd.eql? "query" or + cmd.eql? "query" or + cmd.eql? "set-attr" or cmd.eql? "get-attr" or cmd =~ /(-v)|(--version)/ or cmd =~ /(help)|(-h)|(--help)/ then diff --git a/test/build-server.basic2/build-svr-02.testcase b/test/build-server.basic2/build-svr-02.testcase index 8c5e870..c2c6aab 100644 --- a/test/build-server.basic2/build-svr-02.testcase +++ b/test/build-server.basic2/build-svr-02.testcase @@ -26,6 +26,8 @@ remove-prj Remove project. register Register the package to the build-server. fullbuild Build all your projects and upload them to package server. query Show build server configuration. +set-attr Set build server atribute. +get-attr Get build server atribute. Subcommand usage: build-svr create -n -t [-u -d ] @@ -46,3 +48,23 @@ build-svr remove-prj -n -N [--dist ] build-svr fullbuild -n [--dist ] build-svr register -n -P [--dist ] build-svr query -n +build-svr set-attr -n -A -V +build-svr get-attr -n -A + +Options: +-n, --name build server name +-u, --url package server url: http://127.0.0.1/dibs/unstable +-d, --address server address: 127.0.0.1:2224 +-p, --port server port number: 2224 +-P, --pkg package file path or name +-o, --os ex) ubuntu-32,windows-32 +-N, --pname project name +-g, --git git repository +-b, --branch git branch +-D, --dist distribution name +-w, --passwd password for managing project +-t, --ftp ftp server url: ftp://dibsftp:dibsftp@127.0.0.1:1024 +-A, --attr attribute +-V, --value value +-h, --help display this information +-v, --version display version diff --git a/test/build-server.basic2/build-svr-21.testcase b/test/build-server.basic2/build-svr-21.testcase new file mode 100644 index 0000000..ba3be50 --- /dev/null +++ b/test/build-server.basic2/build-svr-21.testcase @@ -0,0 +1,19 @@ +#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 set-attr -n testserver3 -A MAX_WORKING_JOBS -V 3 +../../build-svr get-attr -n testserver3 -A MAX_WORKING_JOBS +../../build-svr set-attr -n testserver3 -A XXX +../../build-svr set-attr -n testserver3 -A XXX -V 1 +../../build-svr get-attr -n testserver3 -A XXX + +#POST-EXEC +../../build-svr remove -n testserver3 +rm -rf buildsvr01 +#EXPECT +3 +Usage: build-svr set-attr -n -A -V +Wrong attribute name! +Wrong attribute name! diff --git a/test/build-server.basic2/testsuite b/test/build-server.basic2/testsuite index d3b6e7a..05f65d2 100644 --- a/test/build-server.basic2/testsuite +++ b/test/build-server.basic2/testsuite @@ -16,3 +16,4 @@ build-svr-17.testcase build-svr-18.testcase build-svr-19.testcase build-svr-20.testcase +build-svr-21.testcase