break
elsif ($?.exitstatus == 99) then # DIBS UPGRADE
cmd = "#{File.dirname(__FILE__)}/upgrade -l #{File.dirname(__FILE__)} -S -t BUILDSERVER -n #{option[:name]} -p #{option[:port]}"
+ if File.exist? "#{BuildServer::CONFIG_ROOT}/#{option[:name]}/upgrade_dist" then
+ File.open("#{BuildServer::CONFIG_ROOT}/#{option[:name]}/upgrade_dist","r") do |f|
+ f.each_line do |l|
+ cmd += " -D #{l.strip}"
+ break
+ end
+ end
+ File.delete "#{BuildServer::CONFIG_ROOT}/#{option[:name]}/upgrade_dist"
+ end
+
cmd = Utils.generate_shell_command(cmd)
puts cmd
Utils.spawn(cmd)
BuildServerController.stop_server( option[:name] )
when "upgrade"
+ if not (option[:dist].nil? or option[:dist].empty?) then
+ build_server = BuildServerController.get_server(option[:name])
+ # distribution check
+ if not build_server.distmgr.get_distribution(option[:dist]).nil? then
+ File.open("#{BuildServer::CONFIG_ROOT}/#{option[:name]}/upgrade_dist","w") do |f|
+ f.puts option[:dist]
+ end
+ else
+ puts "Distribution \"#{option[:dist]}\" is not exits"
+ puts "Upgrade Failed!!"
+ exit 1
+ end
+ end
+
BuildServerController.upgrade_server( option[:name] )
when "add-svr"
$LOAD_PATH.unshift File.dirname(__FILE__)+"/src/common"
$LOAD_PATH.unshift File.dirname(__FILE__)+"/src/build_server"
$LOAD_PATH.unshift File.dirname(__FILE__)+"/src/pkg_server"
+require "BuildServerController"
require "utils.rb"
require "log.rb"
-require "packageServerLog"
require "client"
def option_error_check( options )
if options[:start] then
if options[:locate].nil? or options[:type].nil? or options[:name].nil? then
- raise ArgumentError, "upgrade -l <dibs path> -S -t <server type> -n <server name> -p <server port>" + "\n"
+ raise ArgumentError, "upgrade -l <dibs path> -S -t <server type> -n <server name> -p <server port> -D <distribution name>" + "\n"
end
else
if options[:locate].nil? or options[:url].nil? then
options[:name] = name
end
+ opts.on( '-D', '--distribution <distribution name>', 'build server distribution name' ) do|dist|
+ options[:dist] = dist
+ end
+
options[:port] = 2222
opts.on( '-p', '--port <port>', 'server port number: 2224' ) do|port|
options[:port] = port.strip.to_i
svr_type = option[:type]
svr_name = option[:name]
svr_port = option[:port]
+ svr_dist = option[:dist]
DIBS_PKG_NAME = "dibs"
BACKUP_ROOT = Utils::HOME + "/.build_tools/backup"
UPGRADE_CMD = "#{PREV_VER_PATH}/upgrade"
BUILD_CONFIG_ROOT = "#{Utils::HOME}/.build_tools/build_server/#{svr_name}"
+ if not svr_dist.nil? then
+ build_server = BuildServerController.get_server(svr_name)
+ dist = build_server.distmgr.get_distribution(svr_dist)
+ if dist.nil? then
+ log.error "Upgrade failed : No distribution name \"#{svr_dist}\" exist!", Log::LV_USER
+ cmd = Utils.generate_shell_command("#{dibs_path}/build-svr start -n #{svr_name} -p #{svr_port}")
+ Utils.spawn(cmd)
+ exit 1
+ end
+ end
+
if not File.exist? BACKUP_ROOT then FileUtils.mkdir_p(BACKUP_ROOT) end
- log = PackageServerLog.new( "#{BACKUP_ROOT}/log" )
+ log = StandardOutLog.new( "#{BUILD_CONFIG_ROOT}/log" )
if not install_opt then
puts ""
# Run Upgrade
if start_opt and svr_type.eql? "BUILDSERVER" then
- if pkg_svr_url.nil? or pkg_svr_url.empty? then
- cmd = "#{UPGRADE_CMD} -I -l #{dibs_path} -S -t #{svr_type} -n #{svr_name} -p #{svr_port}"
- else
- cmd = "#{UPGRADE_CMD} -I -l #{dibs_path} -S -t #{svr_type} -n #{svr_name} -p #{svr_port} -u #{pkg_svr_url}"
+ cmd = "#{UPGRADE_CMD} -I -l #{dibs_path} -S -t #{svr_type} -n #{svr_name} -p #{svr_port}"
+
+ if not (pkg_svr_url.nil? or pkg_svr_url.empty?) then
+ cmd += " -u #{pkg_svr_url}"
end
+
+ if not (svr_dist.nil? or svr_dist.empty?) then
+ cmd += " -D #{svr_dist}"
+ end
+
else
cmd = "#{UPGRADE_CMD} -I -l #{dibs_path} -u #{pkg_svr_url}"
end
# Get SERVER INFORMATION
if start_opt and svr_type.eql? "BUILDSERVER" then
# only when acesss build server controller
- require "BuildServerController"
build_server = BuildServerController.get_server(svr_name)
if pkg_svr_url.nil? or pkg_svr_url.empty? then
- pkg_svr_url = build_server.distmgr.get_default_pkgsvr_url()
+ if svr_dist.nil? or svr_dist.empty? then
+ pkg_svr_url = build_server.distmgr.get_default_pkgsvr_url()
+ else
+ dist = build_server.distmgr.get_distribution(svr_dist)
+ if not dist.nil? then
+ pkg_svr_url = dist.pkgsvr_url
+ else
+ log.error "Upgrade failed : No distribution name \"#{svr_dist}\" exist!", Log::LV_USER
+ exit 1
+ end
+ end
end
log.info("Build server : [#{svr_name}][#{svr_port}]", Log::LV_USER)
end
# recevie & print
mismatched = false
result = build_client.read_lines do |l|
- log.error(l, Log::LV_USER)
+ log.info(l, Log::LV_USER)
if l.include? "Password mismatched!" then
mismatched = true
end