Merge "Create runtime descriptor for new service"
This commit is contained in:
@@ -333,11 +333,19 @@ class Connection(six.with_metaclass(_meta.ConnectionMeta,
|
|||||||
# we get an adapter.
|
# we get an adapter.
|
||||||
if isinstance(service, six.string_types):
|
if isinstance(service, six.string_types):
|
||||||
service = service_description.ServiceDescription(service)
|
service = service_description.ServiceDescription(service)
|
||||||
service_proxy = service._make_proxy(self)
|
|
||||||
|
|
||||||
# Register the proxy class with every known alias
|
# Directly invoke descriptor of the ServiceDescription
|
||||||
|
def getter(self):
|
||||||
|
return service.__get__(self, service)
|
||||||
|
|
||||||
|
# Register the ServiceDescription class (as property)
|
||||||
|
# with every known alias for a "runtime descriptor"
|
||||||
for attr_name in service.all_types:
|
for attr_name in service.all_types:
|
||||||
setattr(self, attr_name.replace('-', '_'), service_proxy)
|
setattr(
|
||||||
|
self.__class__,
|
||||||
|
attr_name.replace('-', '_'),
|
||||||
|
property(fget=getter)
|
||||||
|
)
|
||||||
|
|
||||||
def authorize(self):
|
def authorize(self):
|
||||||
"""Authorize this Connection
|
"""Authorize this Connection
|
||||||
|
@@ -260,6 +260,13 @@ class TestNewService(base.TestCase):
|
|||||||
self.use_keystone_v3(catalog='catalog-v3-fake-v1.json')
|
self.use_keystone_v3(catalog='catalog-v3-fake-v1.json')
|
||||||
conn = self.cloud
|
conn = self.cloud
|
||||||
|
|
||||||
|
service = fake_service.FakeService('fake')
|
||||||
|
|
||||||
|
conn.add_service(service)
|
||||||
|
|
||||||
|
# Ensure no discovery calls made
|
||||||
|
self.assertEqual(0, len(self.adapter.request_history))
|
||||||
|
|
||||||
self.register_uris([
|
self.register_uris([
|
||||||
dict(method='GET',
|
dict(method='GET',
|
||||||
uri='https://fake.example.com',
|
uri='https://fake.example.com',
|
||||||
@@ -272,10 +279,6 @@ class TestNewService(base.TestCase):
|
|||||||
status_code=404),
|
status_code=404),
|
||||||
])
|
])
|
||||||
|
|
||||||
service = fake_service.FakeService('fake')
|
|
||||||
|
|
||||||
conn.add_service(service)
|
|
||||||
|
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
'openstack.tests.unit.fake.v1._proxy',
|
'openstack.tests.unit.fake.v1._proxy',
|
||||||
conn.fake.__class__.__module__)
|
conn.fake.__class__.__module__)
|
||||||
|
Reference in New Issue
Block a user