mirror of
https://github.com/puppetlabs/vmfloaty.git
synced 2026-01-26 13:28:42 -05:00
(maint) Fix for ABS PR#306 that includes json responses
Before this change ABS sometiimes returned a string of JSON with escaped quotes, that had to be parsed again With this change, floaty should accept both the legacy and the new full JSON responses.
This commit is contained in:
parent
f3cd540455
commit
4df970b21f
2 changed files with 26 additions and 8 deletions
|
|
@ -77,8 +77,10 @@ class ABS
|
||||||
requests.each do |req|
|
requests.each do |req|
|
||||||
next if req == 'null'
|
next if req == 'null'
|
||||||
|
|
||||||
if valid_json?(req)
|
if valid_json?(req) # legacy ABS had another JSON string always-be-scheduling/pull/306
|
||||||
req_hash = JSON.parse(req)
|
req_hash = JSON.parse(req)
|
||||||
|
elsif req.is_a?(Hash)
|
||||||
|
req_hash = req
|
||||||
else
|
else
|
||||||
FloatyLogger.warn "Warning: couldn't parse request returned from abs/status/queue"
|
FloatyLogger.warn "Warning: couldn't parse request returned from abs/status/queue"
|
||||||
next
|
next
|
||||||
|
|
@ -170,7 +172,11 @@ class ABS
|
||||||
res_body = JSON.parse(res.body)
|
res_body = JSON.parse(res.body)
|
||||||
if res_body.key?('vmpooler_platforms')
|
if res_body.key?('vmpooler_platforms')
|
||||||
os_list << '*** VMPOOLER Pools ***'
|
os_list << '*** VMPOOLER Pools ***'
|
||||||
os_list += JSON.parse(res_body['vmpooler_platforms'])
|
if res_body['vmpooler_platforms'].is_a?(Hash)
|
||||||
|
os_list += res_body['vmpooler_platforms']
|
||||||
|
else
|
||||||
|
os_list += JSON.parse(res_body['vmpooler_platforms']) # legacy ABS had another JSON string always-be-scheduling/pull/306
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -180,7 +186,11 @@ class ABS
|
||||||
if res_body.key?('ondemand_vmpooler_platforms') && res_body['ondemand_vmpooler_platforms'] != '[]'
|
if res_body.key?('ondemand_vmpooler_platforms') && res_body['ondemand_vmpooler_platforms'] != '[]'
|
||||||
os_list << ''
|
os_list << ''
|
||||||
os_list << '*** VMPOOLER ONDEMAND Pools ***'
|
os_list << '*** VMPOOLER ONDEMAND Pools ***'
|
||||||
os_list += JSON.parse(res_body['ondemand_vmpooler_platforms'])
|
if res_body['ondemand_vmpooler_platforms'].is_a?(Hash)
|
||||||
|
os_list += res_body['ondemand_vmpooler_platforms']
|
||||||
|
else
|
||||||
|
os_list += JSON.parse(res_body['ondemand_vmpooler_platforms']) # legacy ABS had another JSON string always-be-scheduling/pull/306
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -190,7 +200,11 @@ class ABS
|
||||||
if res_body.key?('nspooler_platforms')
|
if res_body.key?('nspooler_platforms')
|
||||||
os_list << ''
|
os_list << ''
|
||||||
os_list << '*** NSPOOLER Pools ***'
|
os_list << '*** NSPOOLER Pools ***'
|
||||||
os_list += JSON.parse(res_body['nspooler_platforms'])
|
if res_body['nspooler_platforms'].is_a?(Hash)
|
||||||
|
os_list += res_body['nspooler_platforms']
|
||||||
|
else
|
||||||
|
os_list += JSON.parse(res_body['nspooler_platforms']) # legacy ABS had another JSON string always-be-scheduling/pull/306
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -200,7 +214,11 @@ class ABS
|
||||||
if res_body.key?('aws_platforms')
|
if res_body.key?('aws_platforms')
|
||||||
os_list << ''
|
os_list << ''
|
||||||
os_list << '*** AWS Pools ***'
|
os_list << '*** AWS Pools ***'
|
||||||
os_list += JSON.parse(res_body['aws_platforms'])
|
if res_body['aws_platforms'].is_a?(Hash)
|
||||||
|
os_list += res_body['aws_platforms']
|
||||||
|
else
|
||||||
|
os_list += JSON.parse(res_body['aws_platforms']) # legacy ABS had another JSON string always-be-scheduling/pull/306
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,9 +71,9 @@ describe ABS do
|
||||||
# rubocop:disable Layout/LineLength
|
# rubocop:disable Layout/LineLength
|
||||||
@active_requests_response = '
|
@active_requests_response = '
|
||||||
[
|
[
|
||||||
"{ \"state\":\"allocated\",\"last_processed\":\"2019-12-16 23:00:34 +0000\",\"allocated_resources\":[{\"hostname\":\"take-this.delivery.puppetlabs.net\",\"type\":\"win-2012r2-x86_64\",\"engine\":\"vmpooler\"}],\"audit_log\":{\"2019-12-13 16:45:29 +0000\":\"Allocated take-this.delivery.puppetlabs.net for job 1576255517241\"},\"request\":{\"resources\":{\"win-2012r2-x86_64\":1},\"job\":{\"id\":\"1576255517241\",\"tags\":{\"user\":\"test-user\"},\"user\":\"test-user\",\"time-received\":1576255519},\"priority\":1}}",
|
{ "state":"allocated","last_processed":"2019-12-16 23:00:34 +0000","allocated_resources":[{"hostname":"take-this.delivery.puppetlabs.net","type":"win-2012r2-x86_64","engine":"vmpooler"}],"audit_log":{"2019-12-13 16:45:29 +0000":"Allocated take-this.delivery.puppetlabs.net for job 1576255517241"},"request":{"resources":{"win-2012r2-x86_64":1},"job":{"id":"1576255517241","tags":{"user":"test-user"},"user":"test-user","time-received":1576255519},"priority":1}},
|
||||||
"null",
|
"null",
|
||||||
"{\"state\":\"allocated\",\"last_processed\":\"2019-12-16 23:00:34 +0000\",\"allocated_resources\":[{\"hostname\":\"not-this.delivery.puppetlabs.net\",\"type\":\"win-2012r2-x86_64\",\"engine\":\"vmpooler\"}],\"audit_log\":{\"2019-12-13 16:46:14 +0000\":\"Allocated not-this.delivery.puppetlabs.net for job 1576255565159\"},\"request\":{\"resources\":{\"win-2012r2-x86_64\":1},\"job\":{\"id\":\"1576255565159\",\"tags\":{\"user\":\"not-test-user\"},\"user\":\"not-test-user\",\"time-received\":1576255566},\"priority\":1}}"
|
{"state":"allocated","last_processed":"2019-12-16 23:00:34 +0000","allocated_resources":[{"hostname":"not-this.delivery.puppetlabs.net","type":"win-2012r2-x86_64","engine":"vmpooler"}],"audit_log":{"2019-12-13 16:46:14 +0000":"Allocated not-this.delivery.puppetlabs.net for job 1576255565159"},"request":{"resources":{"win-2012r2-x86_64":1},"job":{"id":"1576255565159","tags":{"user":"not-test-user"},"user":"not-test-user","time-received":1576255566},"priority":1}}
|
||||||
]'
|
]'
|
||||||
# rubocop:enable Layout/LineLength
|
# rubocop:enable Layout/LineLength
|
||||||
@token = 'utpg2i2xswor6h8ttjhu3d47z53yy47y'
|
@token = 'utpg2i2xswor6h8ttjhu3d47z53yy47y'
|
||||||
|
|
@ -101,7 +101,7 @@ describe ABS do
|
||||||
# rubocop:disable Layout/LineLength
|
# rubocop:disable Layout/LineLength
|
||||||
@active_requests_response = '
|
@active_requests_response = '
|
||||||
[
|
[
|
||||||
"{ \"state\":\"allocated\", \"last_processed\":\"2020-01-17 22:29:13 +0000\", \"allocated_resources\":[{\"hostname\":\"craggy-chord.delivery.puppetlabs.net\", \"type\":\"centos-7-x86_64\", \"engine\":\"vmpooler\"}, {\"hostname\":\"visible-revival.delivery.puppetlabs.net\", \"type\":\"centos-7-x86_64\", \"engine\":\"vmpooler\"}], \"audit_log\":{\"2020-01-17 22:28:45 +0000\":\"Allocated craggy-chord.delivery.puppetlabs.net, visible-revival.delivery.puppetlabs.net for job 1579300120799\"}, \"request\":{\"resources\":{\"centos-7-x86_64\":2}, \"job\":{\"id\":\"1579300120799\", \"tags\":{\"user\":\"test-user\"}, \"user\":\"test-user\", \"time-received\":1579300120}, \"priority\":3}}"
|
{ "state":"allocated", "last_processed":"2020-01-17 22:29:13 +0000", "allocated_resources":[{"hostname":"craggy-chord.delivery.puppetlabs.net", "type":"centos-7-x86_64", "engine":"vmpooler"}, {"hostname":"visible-revival.delivery.puppetlabs.net", "type":"centos-7-x86_64", "engine":"vmpooler"}], "audit_log":{"2020-01-17 22:28:45 +0000":"Allocated craggy-chord.delivery.puppetlabs.net, visible-revival.delivery.puppetlabs.net for job 1579300120799"}, "request":{"resources":{"centos-7-x86_64":2}, "job":{"id":"1579300120799", "tags":{"user":"test-user"}, "user":"test-user", "time-received":1579300120}, "priority":3}}
|
||||||
]'
|
]'
|
||||||
@return_request = { '{"job_id":"1579300120799","hosts":{"hostname":"craggy-chord.delivery.puppetlabs.net","type":"centos-7-x86_64","engine":"vmpooler"},{"hostname":"visible-revival.delivery.puppetlabs.net","type":"centos-7-x86_64","engine":"vmpooler"}}'=>true }
|
@return_request = { '{"job_id":"1579300120799","hosts":{"hostname":"craggy-chord.delivery.puppetlabs.net","type":"centos-7-x86_64","engine":"vmpooler"},{"hostname":"visible-revival.delivery.puppetlabs.net","type":"centos-7-x86_64","engine":"vmpooler"}}'=>true }
|
||||||
# rubocop:enable Layout/LineLength
|
# rubocop:enable Layout/LineLength
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue