Replace inheritance hierarchy with composition
In the process of unification of the clients code we should use composition to allow easier replacement with common HTTPClient. bp common-client-library-2 Change-Id: I98d2bc89d5b1a36c30771923cd1cda7925e563d5
This commit is contained in:
@@ -44,8 +44,8 @@ class ShellTest(utils.BaseTestCase):
|
||||
super(ShellTest, self).setUp()
|
||||
|
||||
@mock.patch.object(ksclient, 'Client')
|
||||
@mock.patch.object(v1client.Client, 'json_request')
|
||||
@mock.patch.object(v1client.Client, 'raw_request')
|
||||
@mock.patch.object(v1client.http.HTTPClient, 'json_request')
|
||||
@mock.patch.object(v1client.http.HTTPClient, 'raw_request')
|
||||
def shell(self, argstr, mock_ksclient, mock_json, mock_raw):
|
||||
orig = sys.stdout
|
||||
try:
|
||||
|
||||
@@ -17,7 +17,7 @@ from ceilometerclient.common import http
|
||||
from ceilometerclient.v1 import meters
|
||||
|
||||
|
||||
class Client(http.HTTPClient):
|
||||
class Client(object):
|
||||
"""Client for the Ceilometer v1 API.
|
||||
|
||||
:param string endpoint: A user-supplied endpoint URL for the ceilometer
|
||||
@@ -29,9 +29,9 @@ class Client(http.HTTPClient):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""Initialize a new client for the Ceilometer v1 API."""
|
||||
super(Client, self).__init__(*args, **kwargs)
|
||||
self.meters = meters.MeterManager(self)
|
||||
self.samples = meters.SampleManager(self)
|
||||
self.users = meters.UserManager(self)
|
||||
self.resources = meters.ResourceManager(self)
|
||||
self.projects = meters.ProjectManager(self)
|
||||
self.http_client = http.HTTPClient(*args, **kwargs)
|
||||
self.meters = meters.MeterManager(self.http_client)
|
||||
self.samples = meters.SampleManager(self.http_client)
|
||||
self.users = meters.UserManager(self.http_client)
|
||||
self.resources = meters.ResourceManager(self.http_client)
|
||||
self.projects = meters.ProjectManager(self.http_client)
|
||||
|
||||
@@ -25,7 +25,7 @@ from ceilometerclient.v2 import trait_descriptions
|
||||
from ceilometerclient.v2 import traits
|
||||
|
||||
|
||||
class Client(http.HTTPClient):
|
||||
class Client(object):
|
||||
"""Client for the Ceilometer v2 API.
|
||||
|
||||
:param string endpoint: A user-supplied endpoint URL for the ceilometer
|
||||
@@ -37,13 +37,14 @@ class Client(http.HTTPClient):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""Initialize a new client for the Ceilometer v1 API."""
|
||||
super(Client, self).__init__(*args, **kwargs)
|
||||
self.meters = meters.MeterManager(self)
|
||||
self.samples = samples.SampleManager(self)
|
||||
self.statistics = statistics.StatisticsManager(self)
|
||||
self.resources = resources.ResourceManager(self)
|
||||
self.alarms = alarms.AlarmManager(self)
|
||||
self.events = events.EventManager(self)
|
||||
self.event_types = event_types.EventTypeManager(self)
|
||||
self.traits = traits.TraitManager(self)
|
||||
self.trait_info = trait_descriptions.TraitDescriptionManager(self)
|
||||
self.http_client = http.HTTPClient(*args, **kwargs)
|
||||
self.meters = meters.MeterManager(self.http_client)
|
||||
self.samples = samples.SampleManager(self.http_client)
|
||||
self.statistics = statistics.StatisticsManager(self.http_client)
|
||||
self.resources = resources.ResourceManager(self.http_client)
|
||||
self.alarms = alarms.AlarmManager(self.http_client)
|
||||
self.events = events.EventManager(self.http_client)
|
||||
self.event_types = event_types.EventTypeManager(self.http_client)
|
||||
self.traits = traits.TraitManager(self.http_client)
|
||||
self.trait_info = trait_descriptions.\
|
||||
TraitDescriptionManager(self.http_client)
|
||||
|
||||
Reference in New Issue
Block a user