keystone_endpoint: Fix id generate with only partial types

This fixes how the id property is generated in case some endpoint types
do not exist, which is allowed in Keystone v3 API.

Closes-Bug: #1713814
Change-Id: I2bbc831a78595e2f7cf3fc5d7d601281665fcc05
This commit is contained in:
Takashi Kajinami 2024-02-20 17:29:18 +09:00
parent 4261de3feb
commit 96cb8d7744
2 changed files with 14 additions and 16 deletions

View File

@ -207,7 +207,8 @@ Puppet::Type.type(:keystone_endpoint).provide(
id_str = ''
id_sep = ''
[:admin, :internal, :public].each do |type|
id_str += "#{id_sep}#{endpoint[type][:id]}" if endpoint[type]
id_str += id_sep
id_str += endpoint[type][:id] if endpoint[type]
id_sep = ','
end
id_str

View File

@ -132,15 +132,12 @@ region="region"
"endpoint10_id","RegionFour","keystone","identity",True,"admin","http://Four-127.0.0.1:5002"
"endpoint11_id","RegionFour","keystone","identity",True,"internal","https://Four-127.0.0.1:5001"
"endpoint12_id","RegionFour","keystone","identity",True,"public","https://Four-127.0.0.1:5000"
"endpoint13_id","RegionFive","keystone","identity",True,"admin","http://Five-127.0.0.1:5002"
"endpoint14_id","RegionFive","keystone","identity",True,"internal","https://Five-127.0.0.1:5001"
"endpoint15_id","RegionFive","keystone","identity",True,"public","https://Five-127.0.0.1:5000"
"endpoint16_id","RegionSix","keystone","identity",True,"admin","http://Six-127.0.0.1:5002"
"endpoint17_id","RegionSix","keystone","identity",True,"internal","https://Six-127.0.0.1:5001"
"endpoint18_id","RegionSix","keystone","identity",True,"public","https://Six-127.0.0.1:5000"
"endpoint19_id","RegionSeven","keystone","identity",True,"admin","http://Seven-127.0.0.1:5002"
"endpoint20_id","RegionSeven","keystone","identity",True,"internal","https://Seven-127.0.0.1:5001"
"endpoint21_id","RegionSeven","keystone","identity",True,"public","https://Seven-127.0.0.1:5000"
"endpoint13_id","RegionFive","keystone","identity",True,"internal","https://Five-127.0.0.1:5001"
"endpoint14_id","RegionFive","keystone","identity",True,"public","https://Five-127.0.0.1:5000"
"endpoint15_id","RegionSix","keystone","identity",True,"admin","http://Six-127.0.0.1:5002"
"endpoint16_id","RegionSix","keystone","identity",True,"public","https://Six-127.0.0.1:5000"
"endpoint17_id","RegionSeven","keystone","identity",True,"admin","http://Seven-127.0.0.1:5002"
"endpoint18_id","RegionSeven","keystone","identity",True,"internal","https://Seven-127.0.0.1:5001"
')
instances = described_class.instances
expect(instances).to have_array_of_instances_hash([
@ -183,29 +180,29 @@ region="region"
{
:name=>"RegionFive/keystone::identity",
:ensure=>:present,
:id=>"endpoint13_id,endpoint14_id,endpoint15_id",
:id=>",endpoint13_id,endpoint14_id",
:region=>"RegionFive",
:admin_url=>"http://Five-127.0.0.1:5002",
:admin_url=>'',
:internal_url=>"https://Five-127.0.0.1:5001",
:public_url=>"https://Five-127.0.0.1:5000"
},
{
:name=>"RegionSix/keystone::identity",
:ensure=>:present,
:id=>"endpoint16_id,endpoint17_id,endpoint18_id",
:id=>"endpoint15_id,,endpoint16_id",
:region=>"RegionSix",
:admin_url=>"http://Six-127.0.0.1:5002",
:internal_url=>"https://Six-127.0.0.1:5001",
:internal_url=>'',
:public_url=>"https://Six-127.0.0.1:5000"
},
{
:name=>"RegionSeven/keystone::identity",
:ensure=>:present,
:id=>"endpoint19_id,endpoint20_id,endpoint21_id",
:id=>"endpoint17_id,endpoint18_id,",
:region=>"RegionSeven",
:admin_url=>"http://Seven-127.0.0.1:5002",
:internal_url=>"https://Seven-127.0.0.1:5001",
:public_url=>"https://Seven-127.0.0.1:5000"
:public_url=>''
}
])
end