lib/right_chimp/Chimp.rb in right_chimp-2.1.22.2 vs lib/right_chimp/Chimp.rb in right_chimp-2.1.24
- old
+ new
@@ -1101,40 +1101,44 @@
#
# Completely process a non-interactive chimp object command
# This is used by chimpd, when processing a task.
#
def process
+
Chimp.set_failure(false)
- Chimp.set_job_uuid(self.job_uuid)
+ Chimp.set_job_uuid(job_uuid)
- Log.debug "[#{Chimp.get_job_uuid}] Processing task"
+ Log.debug "[#{job_uuid}] Processing task"
# Add to our "processing" counter
- Log.debug "[#{Chimp.get_job_uuid}] Trying to get array_info" unless Chimp.failure
+ Log.debug "[#{job_uuid}] Trying to get array_info" unless Chimp.failure
get_array_info unless Chimp.failure
- Log.debug "[#{Chimp.get_job_uuid}] Trying to get server_info" unless Chimp.failure
+ Log.debug "[#{job_uuid}] Trying to get server_info" unless Chimp.failure
get_server_info unless Chimp.failure
- Log.debug "[#{Chimp.get_job_uuid}] Trying to get template_info" unless Chimp.failure
+ Log.debug "[#{job_uuid}] Trying to get template_info" unless Chimp.failure
get_template_info unless Chimp.failure
- Log.debug "[#{Chimp.get_job_uuid}] Trying to get executable_info" unless Chimp.failure
+ Log.debug "[#{job_uuid}] Trying to get executable_info" unless Chimp.failure
get_executable_info unless Chimp.failure
# All elements of task have been processed
ChimpDaemon.instance.semaphore.synchronize do
+ # remove from the processing queue
+ Log.debug 'Removing job: ' + job_uuid + ' from the processing queue for group: ' + group.to_s
+ ChimpDaemon.instance.queue.processing[group].delete(job_uuid)
ChimpDaemon.instance.proc_counter -= 1
end
if Chimp.failure
- Log.error "##################################################"
- Log.error "["+self.job_uuid+"] API CALL FAILED FOR:"
- Log.error "["+self.job_uuid+"] chimp #{@cli_args} "
- Log.error "["+self.job_uuid+"] Run manually!"
- Log.error "##################################################"
+ Log.error '##################################################'
+ Log.error '[' + job_uuid + '] API CALL FAILED FOR:'
+ Log.error '[' + job_uuid + "] chimp #{@cli_args} "
+ Log.error '[' + job_uuid + '] Run manually!'
+ Log.error '##################################################'
return []
else
if @servers.first.nil? or @executable.nil?
Log.warn "[#{Chimp.get_job_uuid}] Nothing to do for \"chimp #{@cli_args}\"."
return []
@@ -1181,21 +1185,28 @@
begin
all = ChimpDaemonClient.retrieve_group_info(@chimpd_host, @chimpd_port, @group, :all)
rescue RestClient::ResourceNotFound
sleep 5
- $stdout.print "\nINFO: Waiting on group #{@group}"
+ $stdout.print "\nINFO: Waiting on group #{@group} to populate"
retry
end
ChimpQueue.instance.create_group(@group)
ChimpQueue[@group].set_jobs(all)
- break if ChimpQueue[@group].done?
+ if ChimpQueue[@group].done?
+ Log.debug 'Group ' + @group.to_s + ' is completed'
+ jobs = ChimpQueue[@group].size
+ $stdout.print "\nINFO: Group #{@group} has completed (#{jobs} jobs)"
+ break
+ else
+ Log.debug 'Group ' + @group.to_s + ' is not done.'
+ end
if sleeping_counter % 240 == 0
- $stdout.print "\nWaiting for group #{@group}" unless sleeping_counter == 0
+ $stdout.print "\n(Still) Waiting for group #{@group}" unless sleeping_counter == 0
end
$stdout.print "."
$stdout.flush
sleeping_counter += 5
sleep 5
@@ -1203,14 +1214,14 @@
#
# If verify_results returns false, then ask chimpd to requeue all failed jobs.
#
case verify_results(@group)
- when "continue"
+ when 'continue'
break
- when "retry"
+ when 'retry'
ChimpDaemonClient.retry_group(@chimpd_host, @chimpd_port, @group)
- when "pause"
+ when 'pause'
@paused = true
#stuck in this loop until action is taken
end
end
ensure