Add VMPooler api v2 support for floaty get

This commit is contained in:
Jake Spain 2022-04-01 11:32:22 -04:00
parent 7108af4079
commit 4103fdeccc
No known key found for this signature in database
GPG key ID: BC1C4DA0A085E113
2 changed files with 36 additions and 5 deletions

View file

@ -9,7 +9,7 @@ class Utils
# TODO: Takes the json response body from an HTTP GET # TODO: Takes the json response body from an HTTP GET
# request and "pretty prints" it # request and "pretty prints" it
def self.standardize_hostnames(response_body) def self.standardize_hostnames(response_body)
# vmpooler response body example when `floaty get` arguments are `ubuntu-1610-x86_64=2 centos-7-x86_64`: # vmpooler api v1 response body example when `floaty get` arguments are `ubuntu-1610-x86_64=2 centos-7-x86_64`:
# { # {
# "ok": true, # "ok": true,
# "domain": "delivery.mycompany.net", # "domain": "delivery.mycompany.net",
@ -21,6 +21,17 @@ class Utils
# } # }
# } # }
# vmpooler api v2 response body example when `floaty get` arguments are `ubuntu-1610-x86_64=2 centos-7-x86_64`:
# {
# "ok": true,
# "ubuntu-1610-x86_64": {
# "hostname": ["gdoy8q3nckuob0i.pooler.example.com", "ctnktsd0u11p9tm.pooler.example.com"]
# },
# "centos-7-x86_64": {
# "hostname": "dlgietfmgeegry2.pooler.example.com"
# }
# }
# nonstandard pooler response body example when `floaty get` arguments are `solaris-11-sparc=2 ubuntu-16.04-power8`: # nonstandard pooler response body example when `floaty get` arguments are `solaris-11-sparc=2 ubuntu-16.04-power8`:
# { # {
# "ok": true, # "ok": true,
@ -98,7 +109,11 @@ class Utils
puts abs_hostnames.join("\n") puts abs_hostnames.join("\n")
when 'Pooler' when 'Pooler'
puts "#{hostname}.#{host_data['domain']}" if host_data['domain'].nil?
puts hostname
else
puts "#{hostname}.#{host_data['domain']}"
end
when 'NonstandardPooler' when 'NonstandardPooler'
puts host_data['fqdn'] puts host_data['fqdn']
else else

View file

@ -13,7 +13,7 @@ end
describe Utils do describe Utils do
describe '#standardize_hostnames' do describe '#standardize_hostnames' do
before :each do before :each do
@vmpooler_response_body = '{ @vmpooler_api_v1_response_body = '{
"ok": true, "ok": true,
"domain": "delivery.mycompany.net", "domain": "delivery.mycompany.net",
"ubuntu-1610-x86_64": { "ubuntu-1610-x86_64": {
@ -23,6 +23,15 @@ describe Utils do
"hostname": "dlgietfmgeegry2" "hostname": "dlgietfmgeegry2"
} }
}' }'
@vmpooler_api_v2_response_body = '{
"ok": true,
"ubuntu-1610-x86_64": {
"hostname": ["gdoy8q3nckuob0i.delivery.mycompany.net", "ctnktsd0u11p9tm.delivery.mycompany.net"]
},
"centos-7-x86_64": {
"hostname": "dlgietfmgeegry2.delivery.mycompany.net"
}
}'
@nonstandard_response_body = '{ @nonstandard_response_body = '{
"ok": true, "ok": true,
"solaris-10-sparc": { "solaris-10-sparc": {
@ -34,8 +43,15 @@ describe Utils do
}' }'
end end
it 'formats a result from vmpooler into a hash of os to hostnames' do it 'formats a result from vmpooler v1 api into a hash of os to hostnames' do
result = Utils.standardize_hostnames(JSON.parse(@vmpooler_response_body)) result = Utils.standardize_hostnames(JSON.parse(@vmpooler_api_v1_response_body))
expect(result).to eq('centos-7-x86_64' => ['dlgietfmgeegry2.delivery.mycompany.net'],
'ubuntu-1610-x86_64' => ['gdoy8q3nckuob0i.delivery.mycompany.net',
'ctnktsd0u11p9tm.delivery.mycompany.net'])
end
it 'formats a result from vmpooler v2 api into a hash of os to hostnames' do
result = Utils.standardize_hostnames(JSON.parse(@vmpooler_api_v2_response_body))
expect(result).to eq('centos-7-x86_64' => ['dlgietfmgeegry2.delivery.mycompany.net'], expect(result).to eq('centos-7-x86_64' => ['dlgietfmgeegry2.delivery.mycompany.net'],
'ubuntu-1610-x86_64' => ['gdoy8q3nckuob0i.delivery.mycompany.net', 'ubuntu-1610-x86_64' => ['gdoy8q3nckuob0i.delivery.mycompany.net',
'ctnktsd0u11p9tm.delivery.mycompany.net']) 'ctnktsd0u11p9tm.delivery.mycompany.net'])