mirror of
https://github.com/puppetlabs/vmfloaty.git
synced 2026-01-26 05:28:40 -05:00
Merge pull request #96 from puppetlabs/dio-911
( DIO-911) Include job_id in ABS --json output
This commit is contained in:
commit
e34964be00
3 changed files with 14 additions and 6 deletions
|
|
@ -268,7 +268,7 @@ class ABS
|
||||||
|
|
||||||
(1..retries).each do |i|
|
(1..retries).each do |i|
|
||||||
queue_place, res_body = check_queue(conn, saved_job_id, req_obj, verbose)
|
queue_place, res_body = check_queue(conn, saved_job_id, req_obj, verbose)
|
||||||
return translated(res_body) if res_body
|
return translated(res_body, saved_job_id) if res_body
|
||||||
|
|
||||||
sleep_seconds = 10 if i >= 10
|
sleep_seconds = 10 if i >= 10
|
||||||
sleep_seconds = i if i < 10
|
sleep_seconds = i if i < 10
|
||||||
|
|
@ -282,8 +282,8 @@ class ABS
|
||||||
#
|
#
|
||||||
# We should fix the ABS API to be more like the vmpooler or nspooler api, but for now
|
# We should fix the ABS API to be more like the vmpooler or nspooler api, but for now
|
||||||
#
|
#
|
||||||
def self.translated(res_body)
|
def self.translated(res_body, job_id)
|
||||||
vmpooler_formatted_body = {}
|
vmpooler_formatted_body = {'job_id' => job_id}
|
||||||
|
|
||||||
res_body.each do |host|
|
res_body.each do |host|
|
||||||
if vmpooler_formatted_body[host['type']] && vmpooler_formatted_body[host['type']]['hostname'].class == Array
|
if vmpooler_formatted_body[host['type']] && vmpooler_formatted_body[host['type']]['hostname'].class == Array
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,10 @@ class Utils
|
||||||
|
|
||||||
result = {}
|
result = {}
|
||||||
|
|
||||||
|
# ABS has a job_id associated with hosts so pass that along
|
||||||
|
abs_job_id = response_body.delete('job_id')
|
||||||
|
result['job_id'] = abs_job_id unless abs_job_id.nil?
|
||||||
|
|
||||||
filtered_response_body = response_body.reject { |key, _| key == 'request_id' || key == 'ready' }
|
filtered_response_body = response_body.reject { |key, _| key == 'request_id' || key == 'ready' }
|
||||||
filtered_response_body.each do |os, value|
|
filtered_response_body.each do |os, value|
|
||||||
hostnames = Array(value['hostname'])
|
hostnames = Array(value['hostname'])
|
||||||
|
|
@ -58,7 +62,8 @@ class Utils
|
||||||
|
|
||||||
def self.format_host_output(hosts)
|
def self.format_host_output(hosts)
|
||||||
hosts.flat_map do |os, names|
|
hosts.flat_map do |os, names|
|
||||||
names.map { |name| "- #{name} (#{os})" }
|
# Assume hosts are stored in Arrays and ignore everything else
|
||||||
|
names.map { |name| "- #{name} (#{os})" } if names.is_a? Array
|
||||||
end.join("\n")
|
end.join("\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,14 +10,15 @@ describe ABS do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#format' do
|
describe '#format' do
|
||||||
it 'returns an hash formatted like a vmpooler return' do
|
it 'returns an hash formatted like a vmpooler return, plus the job_id' do
|
||||||
|
job_id = "generated_by_floaty_12345"
|
||||||
abs_formatted_response = [
|
abs_formatted_response = [
|
||||||
{ 'hostname' => 'aaaaaaaaaaaaaaa.delivery.puppetlabs.net', 'type' => 'centos-7.2-x86_64', 'engine' => 'vmpooler' },
|
{ 'hostname' => 'aaaaaaaaaaaaaaa.delivery.puppetlabs.net', 'type' => 'centos-7.2-x86_64', 'engine' => 'vmpooler' },
|
||||||
{ 'hostname' => 'aaaaaaaaaaaaaab.delivery.puppetlabs.net', 'type' => 'centos-7.2-x86_64', 'engine' => 'vmpooler' },
|
{ 'hostname' => 'aaaaaaaaaaaaaab.delivery.puppetlabs.net', 'type' => 'centos-7.2-x86_64', 'engine' => 'vmpooler' },
|
||||||
{ 'hostname' => 'aaaaaaaaaaaaaac.delivery.puppetlabs.net', 'type' => 'ubuntu-7.2-x86_64', 'engine' => 'vmpooler' },
|
{ 'hostname' => 'aaaaaaaaaaaaaac.delivery.puppetlabs.net', 'type' => 'ubuntu-7.2-x86_64', 'engine' => 'vmpooler' },
|
||||||
]
|
]
|
||||||
|
|
||||||
vmpooler_formatted_response = ABS.translated(abs_formatted_response)
|
vmpooler_formatted_response = ABS.translated(abs_formatted_response, job_id)
|
||||||
|
|
||||||
vmpooler_formatted_compare = {
|
vmpooler_formatted_compare = {
|
||||||
'centos-7.2-x86_64' => {},
|
'centos-7.2-x86_64' => {},
|
||||||
|
|
@ -29,6 +30,8 @@ describe ABS do
|
||||||
|
|
||||||
vmpooler_formatted_compare['ok'] = true
|
vmpooler_formatted_compare['ok'] = true
|
||||||
|
|
||||||
|
vmpooler_formatted_compare['job_id'] = job_id
|
||||||
|
|
||||||
expect(vmpooler_formatted_response).to eq(vmpooler_formatted_compare)
|
expect(vmpooler_formatted_response).to eq(vmpooler_formatted_compare)
|
||||||
vmpooler_formatted_response.delete('ok')
|
vmpooler_formatted_response.delete('ok')
|
||||||
vmpooler_formatted_compare.delete('ok')
|
vmpooler_formatted_compare.delete('ok')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue