[Title] Added new sub-commands "set-attr", "get-attr" into "build-svr"
authordonghee yang <donghee.yang@samsung.com>
Mon, 8 Oct 2012 01:09:09 +0000 (10:09 +0900)
committerdonghee yang <donghee.yang@samsung.com>
Mon, 8 Oct 2012 01:09:09 +0000 (10:09 +0900)
build-svr
src/build_server/BuildServerController.rb
src/build_server/BuildServerOptionParser.rb
test/build-server.basic2/build-svr-02.testcase
test/build-server.basic2/build-svr-21.testcase [new file with mode: 0644]
test/build-server.basic2/testsuite

index a3ee0211526d7dd67e16e7343129aef944c1d3f4..6a862832b1c836e6bc1d612162e7891f37a7abe9 100755 (executable)
--- 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
index b7ac551db4718328e48cdc9533a70db961444dd3..9a6d05d5d63352b228da28c4889d716f632e508e 100644 (file)
@@ -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
        #####################
index f385807d450482e19c9652e71fa5e7deeb225138..8a5996917e068ec00537feb9e80df7690201292e 100644 (file)
@@ -49,6 +49,8 @@ class BuildServerUsage
        FULLBUILD="build-svr fullbuild -n <server name> [--dist <distribution>]"
        REGISTER="build-svr register -n <server name> -P <package file> [--dist <distribution>]"
        QUERY="build-svr query -n <server name>"
+       SET_ATTR="build-svr set-attr -n <server name> -A <attribute> -V <value>"
+       GET_ATTR="build-svr get-attr -n <server name> -A <attribute>"
 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 name>', 'attribute' ) do |attr|
+            options[:attr] = attr
+               end
+
+               opts.on( '-V', '--value <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
 
index 8c5e870de03dfd949e4ef13141c3ab639037401e..c2c6aab8b78a94c6a59cace8fe22f8a9a335aa6c 100644 (file)
@@ -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 <server name> -t <ftp server url> [-u <package server url> -d <package server address>]
@@ -46,3 +48,23 @@ build-svr remove-prj -n <server name> -N <project name> [--dist <distribution>]
 build-svr fullbuild -n <server name> [--dist <distribution>]
 build-svr register -n <server name> -P <package file> [--dist <distribution>]
 build-svr query -n <server name>
+build-svr set-attr -n <server name> -A <attribute> -V <value>
+build-svr get-attr -n <server name> -A <attribute>
+
+Options:
+-n, --name <server name>         build server name
+-u, --url <package server url>   package server url: http://127.0.0.1/dibs/unstable
+-d, --address <server address>   server address: 127.0.0.1:2224
+-p, --port <port>                server port number: 2224
+-P, --pkg <package name/file>    package file path or name
+-o, --os <target os list>        ex) ubuntu-32,windows-32
+-N, --pname <project name>       project name
+-g, --git <git repository>       git repository
+-b, --branch <git branch>        git branch
+-D, --dist <distribution name>   distribution name
+-w, --passwd <password>          password for managing project
+-t, --ftp <ftp server url>       ftp server url: ftp://dibsftp:dibsftp@127.0.0.1:1024
+-A, --attr <attribute name>      attribute
+-V, --value <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 (file)
index 0000000..ba3be50
--- /dev/null
@@ -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 <server name> -A <attribute> -V <value>
+Wrong attribute name!
+Wrong attribute name!
index d3b6e7a70105562fc4dbaf423a725e2030b49245..05f65d24dcd6df5da016c6bf1e74ad5f299326f6 100644 (file)
@@ -16,3 +16,4 @@ build-svr-17.testcase
 build-svr-18.testcase
 build-svr-19.testcase
 build-svr-20.testcase
+build-svr-21.testcase