Use common function to parse python list
Depends-on: https://review.opendev.org/931749 Change-Id: I152c9871c2fcf909328eb6d8cf73a23d7c32070c
This commit is contained in:
parent
da7785c6fa
commit
06159d4b23
lib/puppet/provider
spec/unit/provider/nova_flavor
@ -22,7 +22,7 @@ Puppet::Type.type(:nova_aggregate).provide(
|
||||
:id => attrs[:id],
|
||||
:availability_zone => attrs[:availability_zone],
|
||||
:metadata => properties,
|
||||
:hosts => string2list(attrs[:hosts]).sort,
|
||||
:hosts => parse_python_list(attrs[:hosts]).sort,
|
||||
)
|
||||
end
|
||||
end
|
||||
@ -126,8 +126,4 @@ Puppet::Type.type(:nova_aggregate).provide(
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def self.string2list(input)
|
||||
return input[1..-2].split(",").map { |x| x.match(/'(.*?)'/)[1] }
|
||||
end
|
||||
end
|
||||
|
@ -99,23 +99,14 @@ Puppet::Type.type(:nova_flavor).provide(
|
||||
access_project_ids = project[:access_project_ids]
|
||||
# Client can return None and this should be considered as ''
|
||||
if access_project_ids.downcase.chomp == 'none'
|
||||
project_value = ''
|
||||
# If the ids are formatted as Array, surrounding [] should be removed
|
||||
elsif access_project_ids.start_with?('[') and access_project_ids.end_with?(']')
|
||||
# TODO(tkajinam): We'd need to consider multiple projects can be returned
|
||||
project_value = access_project_ids[1..-2]
|
||||
project_id = nil
|
||||
project_name = nil
|
||||
else
|
||||
project_value = access_project_ids
|
||||
end
|
||||
project_value = project_value.gsub('\'', '')
|
||||
|
||||
if project_value != ''
|
||||
# TODO(tkajinam): We'd need to consider multiple projects can be returned
|
||||
project_value = parse_python_list(access_project_ids)[0]
|
||||
project = request('project', 'show', project_value)
|
||||
project_id = project[:id]
|
||||
project_name = project[:name]
|
||||
else
|
||||
project_id = ''
|
||||
project_name = ''
|
||||
end
|
||||
|
||||
properties = parse_python_dict(attrs[:properties])
|
||||
|
@ -168,8 +168,8 @@ domain_id="domain_one_id"
|
||||
expect(instances[0].swap).to eq('0')
|
||||
expect(instances[0].rxtx_factor).to eq('1.0')
|
||||
expect(instances[0].properties).to eq({})
|
||||
expect(instances[0].project).to eq('')
|
||||
expect(instances[0].project_name).to eq('')
|
||||
expect(instances[0].project).to eq(:absent)
|
||||
expect(instances[0].project_name).to eq(:absent)
|
||||
expect(instances[1].name).to eq('m1.nano')
|
||||
expect(instances[1].id).to eq('42')
|
||||
expect(instances[1].ram).to eq('256')
|
||||
@ -180,8 +180,8 @@ domain_id="domain_one_id"
|
||||
expect(instances[1].swap).to eq('0')
|
||||
expect(instances[1].rxtx_factor).to eq('1.0')
|
||||
expect(instances[1].properties).to eq({'key1' => 'val1', 'key2' => 'val2'})
|
||||
expect(instances[1].project).to eq('')
|
||||
expect(instances[1].project_name).to eq('')
|
||||
expect(instances[1].project).to eq(:absent)
|
||||
expect(instances[1].project_name).to eq(:absent)
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user