Support same projects in different domain
Getting 500 error when there are same project name in different domain. Selecting one domain from service_credentials. e.g. services(or service) projects are in default and service_domain having differrent id. so this selects default's services project instead of service_domain's services project Closes-Bug: #1776375 Change-Id: Ibb79423a06062f2e00785c30f54e7ac2a41a4705
This commit is contained in:
parent
08075d07aa
commit
471437e455
|
@ -34,6 +34,10 @@ GNOCCHI_OPTS = [
|
|||
default="service",
|
||||
help='Project name of resources creator in Gnocchi. '
|
||||
'(For example the Ceilometer project name'),
|
||||
cfg.StrOpt('gnocchi_external_domain_name',
|
||||
default="Default",
|
||||
help='Domain name of resources creator in Gnocchi. '
|
||||
'(For example, default or service_domain'),
|
||||
]
|
||||
|
||||
|
||||
|
@ -139,8 +143,12 @@ class AggregationMetricByResourcesLookupRule(AlarmGnocchiThresholdRule):
|
|||
def get_external_project_owner():
|
||||
kc = keystone_client.get_client(pecan.request.cfg)
|
||||
project_name = pecan.request.cfg.api.gnocchi_external_project_owner
|
||||
domain_name = pecan.request.cfg.api.gnocchi_external_domain_name
|
||||
domains = kc.domains.list(name=domain_name)
|
||||
try:
|
||||
project = kc.projects.find(name=project_name)
|
||||
project = kc.projects.find(
|
||||
name=project_name,
|
||||
domain_id=domains[0].id)
|
||||
return project.id
|
||||
except ka_exceptions.NotFound:
|
||||
return None
|
||||
|
|
|
@ -2370,6 +2370,9 @@ class TestAlarmsRuleGnocchi(TestAlarmsBase):
|
|||
]}
|
||||
|
||||
ks_client = mock.Mock()
|
||||
ks_client.domains.list.return_value = [mock.Mock(
|
||||
id='<my-uuid>',
|
||||
name='Default')]
|
||||
ks_client.projects.find.return_value = mock.Mock(id='<my-uuid>')
|
||||
get_client.return_value = ks_client
|
||||
|
||||
|
|
Loading…
Reference in New Issue