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() |         super(ShellTest, self).setUp() | ||||||
|  |  | ||||||
|     @mock.patch.object(ksclient, 'Client') |     @mock.patch.object(ksclient, 'Client') | ||||||
|     @mock.patch.object(v1client.Client, 'json_request') |     @mock.patch.object(v1client.http.HTTPClient, 'json_request') | ||||||
|     @mock.patch.object(v1client.Client, 'raw_request') |     @mock.patch.object(v1client.http.HTTPClient, 'raw_request') | ||||||
|     def shell(self, argstr, mock_ksclient, mock_json, mock_raw): |     def shell(self, argstr, mock_ksclient, mock_json, mock_raw): | ||||||
|         orig = sys.stdout |         orig = sys.stdout | ||||||
|         try: |         try: | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ from ceilometerclient.common import http | |||||||
| from ceilometerclient.v1 import meters | from ceilometerclient.v1 import meters | ||||||
|  |  | ||||||
|  |  | ||||||
| class Client(http.HTTPClient): | class Client(object): | ||||||
|     """Client for the Ceilometer v1 API. |     """Client for the Ceilometer v1 API. | ||||||
|  |  | ||||||
|     :param string endpoint: A user-supplied endpoint URL for the ceilometer |     :param string endpoint: A user-supplied endpoint URL for the ceilometer | ||||||
| @@ -29,9 +29,9 @@ class Client(http.HTTPClient): | |||||||
|  |  | ||||||
|     def __init__(self, *args, **kwargs): |     def __init__(self, *args, **kwargs): | ||||||
|         """Initialize a new client for the Ceilometer v1 API.""" |         """Initialize a new client for the Ceilometer v1 API.""" | ||||||
|         super(Client, self).__init__(*args, **kwargs) |         self.http_client = http.HTTPClient(*args, **kwargs) | ||||||
|         self.meters = meters.MeterManager(self) |         self.meters = meters.MeterManager(self.http_client) | ||||||
|         self.samples = meters.SampleManager(self) |         self.samples = meters.SampleManager(self.http_client) | ||||||
|         self.users = meters.UserManager(self) |         self.users = meters.UserManager(self.http_client) | ||||||
|         self.resources = meters.ResourceManager(self) |         self.resources = meters.ResourceManager(self.http_client) | ||||||
|         self.projects = meters.ProjectManager(self) |         self.projects = meters.ProjectManager(self.http_client) | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ from ceilometerclient.v2 import trait_descriptions | |||||||
| from ceilometerclient.v2 import traits | from ceilometerclient.v2 import traits | ||||||
|  |  | ||||||
|  |  | ||||||
| class Client(http.HTTPClient): | class Client(object): | ||||||
|     """Client for the Ceilometer v2 API. |     """Client for the Ceilometer v2 API. | ||||||
|  |  | ||||||
|     :param string endpoint: A user-supplied endpoint URL for the ceilometer |     :param string endpoint: A user-supplied endpoint URL for the ceilometer | ||||||
| @@ -37,13 +37,14 @@ class Client(http.HTTPClient): | |||||||
|  |  | ||||||
|     def __init__(self, *args, **kwargs): |     def __init__(self, *args, **kwargs): | ||||||
|         """Initialize a new client for the Ceilometer v1 API.""" |         """Initialize a new client for the Ceilometer v1 API.""" | ||||||
|         super(Client, self).__init__(*args, **kwargs) |         self.http_client = http.HTTPClient(*args, **kwargs) | ||||||
|         self.meters = meters.MeterManager(self) |         self.meters = meters.MeterManager(self.http_client) | ||||||
|         self.samples = samples.SampleManager(self) |         self.samples = samples.SampleManager(self.http_client) | ||||||
|         self.statistics = statistics.StatisticsManager(self) |         self.statistics = statistics.StatisticsManager(self.http_client) | ||||||
|         self.resources = resources.ResourceManager(self) |         self.resources = resources.ResourceManager(self.http_client) | ||||||
|         self.alarms = alarms.AlarmManager(self) |         self.alarms = alarms.AlarmManager(self.http_client) | ||||||
|         self.events = events.EventManager(self) |         self.events = events.EventManager(self.http_client) | ||||||
|         self.event_types = event_types.EventTypeManager(self) |         self.event_types = event_types.EventTypeManager(self.http_client) | ||||||
|         self.traits = traits.TraitManager(self) |         self.traits = traits.TraitManager(self.http_client) | ||||||
|         self.trait_info = trait_descriptions.TraitDescriptionManager(self) |         self.trait_info = trait_descriptions.\ | ||||||
|  |             TraitDescriptionManager(self.http_client) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Andrey Kurilin
					Andrey Kurilin