Run functional tests when no ceilometer endpoint

Currently if there is no metering endpoint in the service
catalog then no functional/integration tests can be done.

This change tolerates missing ceilometer endpoint.

Change-Id: I55d45048284c4e78b9a1a94a35ef3cddc7bc3a37
This commit is contained in:
Steve Baker 2015-05-26 13:28:28 +12:00
parent 022a863284
commit d0e5cad7f3
1 changed files with 21 additions and 17 deletions

View File

@ -144,22 +144,26 @@ class ClientManager(object):
dscv = self.conf.disable_ssl_certificate_validation
keystone = self._get_identity_client()
endpoint = keystone.service_catalog.url_for(
attr='region',
filter_value=self.conf.region,
service_type='metering',
endpoint_type='publicURL')
try:
endpoint = keystone.service_catalog.url_for(
attr='region',
filter_value=self.conf.region,
service_type='metering',
endpoint_type='publicURL')
args = {
'username': self.conf.username,
'password': self.conf.password,
'tenant_name': self.conf.tenant_name,
'auth_url': self.conf.auth_url,
'insecure': dscv,
'region_name': self.conf.region,
'endpoint_type': 'publicURL',
'service_type': 'metering',
}
except keystoneclient.exceptions.EndpointNotFound:
return None
else:
args = {
'username': self.conf.username,
'password': self.conf.password,
'tenant_name': self.conf.tenant_name,
'auth_url': self.conf.auth_url,
'insecure': dscv,
'region_name': self.conf.region,
'endpoint_type': 'publicURL',
'service_type': 'metering',
}
return ceilometerclient.client.Client(self.CEILOMETER_VERSION,
endpoint, **args)
return ceilometerclient.client.Client(self.CEILOMETER_VERSION,
endpoint, **args)