# check distribution's server_url
if @server_url.empty? then
- @log.error("This distribution has not remote server", Log::LV_USER)
- return false
+ @log.error("This distribution has not remote server")
+ Utils.file_unlock(sync_lock_file)
+ raise RuntimeError, "remote server address empty"
end
# generate client class
end
client = Client.new( server_url, "#{@location}/binary", @log )
+ # parents package server check
+ if client.pkg_hash_os.keys.empty? then
+ @log.error("Sync process stopped by error.")
+ @log.error("Parents package server does not have [[os_info]] file.")
+
+ Utils.file_unlock(sync_lock_file)
+ raise RuntimeError, "Parents package server does not have [[os_info]] file."
+ end
+
# update os list
add_os_list = client.support_os_list - @support_os_list
add_os_list.each do |os|
@support_os_list.each do |os|
# error check
if client.pkg_hash_os[os].nil? then
- @log.error("package server does not have os : #{os}", Log::LV_USER)
+ @log.error("os[[#{os}]] is removed in parents package server", Log::LV_USER)
next
end
return
end
- ret = distribution.sync(mode, snapshot)
- if ret then
- distribution.generate_snapshot("", "", false, distribution.last_sync_changes)
- end
+ begin
+ ret = distribution.sync(mode, snapshot)
- @log.output( "package server [#{@id}]'s distribution [#{dist_name}] has been synchronized.", Log::LV_USER )
+ if ret then
+ distribution.generate_snapshot("", "", false, distribution.last_sync_changes)
+ end
+
+ @log.output( "package server [#{@id}]'s distribution [#{dist_name}] has been synchronized.", Log::LV_USER )
+ rescue => e
+ @log.error( e.message, Log::LV_USER)
+ end
end
def add_distribution( dist_name, server_url, clone )