summaryrefslogtreecommitdiff
path: root/heatclient
diff options
context:
space:
mode:
authorAndrey Kurilin <akurilin@mirantis.com>2014-01-11 14:54:19 +0200
committerAndrey Kurilin <akurilin@mirantis.com>2014-01-11 15:09:31 +0200
commitceeb439c9d7c808b65e3e7487836e7ec8e4f8181 (patch)
tree90bcf8eb878e8b44c7d0c4684481041eb6ac3d1a /heatclient
parent97d945e87995e61920227e5664ee3c55290c6052 (diff)
downloadpython-heatclient-ceeb439c9d7c808b65e3e7487836e7ec8e4f8181.tar.gz
Remove unused common.base module
Base module is already replaced with a module from oslo common code, but was not removed. This patch must fix this. Change-Id: I8f5c4da8884db4024d47ca8d1a80dbb648922a31
Diffstat (limited to 'heatclient')
-rw-r--r--heatclient/common/base.py134
1 files changed, 0 insertions, 134 deletions
diff --git a/heatclient/common/base.py b/heatclient/common/base.py
deleted file mode 100644
index 16ea13c..0000000
--- a/heatclient/common/base.py
+++ /dev/null
@@ -1,134 +0,0 @@
-# Copyright 2012 OpenStack Foundation
-# All Rights Reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-"""
-Base utilities to build API operation managers and objects on top of.
-"""
-
-import copy
-import six
-
-
-# Python 2.4 compat
-try:
- all
-except NameError:
- def all(iterable):
- return True not in (not x for x in iterable)
-
-
-def getid(obj):
- """Get by object or ID.
-
- Abstracts the common pattern of allowing both an object or an object's ID
- (UUID) as a parameter when dealing with relationships.
- """
- try:
- return obj.id
- except AttributeError:
- return obj
-
-
-class Manager(object):
- """Managers interact with a particular type of API.
-
- For example servers, flavors and images.
- It provides CRUD operations for these objects.
- """
- resource_class = None
-
- def __init__(self, api):
- self.api = api
-
- def _list(self, url, response_key, obj_class=None, body=None):
- resp, body = self.api.json_request('GET', url)
-
- if obj_class is None:
- obj_class = self.resource_class
-
- data = body[response_key]
- return [obj_class(self, res, loaded=True) for res in data if res]
-
- def _delete(self, url):
- self.api.raw_request('DELETE', url)
-
- def _update(self, url, body, response_key=None):
- resp, body = self.api.json_request('PUT', url, body=body)
- # PUT requests may not return a body
- if body:
- return self.resource_class(self, body[response_key])
-
-
-class Resource(object):
- """A resource represents a particular instance of an object.
-
- For example tenant or user. This is pretty much just a bag for attributes.
-
- :param manager: Manager object
- :param info: dictionary representing resource attributes
- :param loaded: prevent lazy-loading if set to True
- """
- def __init__(self, manager, info, loaded=False):
- self.manager = manager
- self._info = info
- self._add_details(info)
- self._loaded = loaded
-
- def _add_details(self, info):
- for (k, v) in six.iteritems(info):
- setattr(self, k, v)
-
- def __getattr__(self, k):
- if k not in self.__dict__:
- #NOTE(bcwaldon): disallow lazy-loading if already loaded once
- if not self.is_loaded():
- self.get()
- return self.__getattr__(k)
-
- raise AttributeError(k)
- else:
- return self.__dict__[k]
-
- def __repr__(self):
- reprkeys = sorted(k for k in self.__dict__.keys()
- if k[0] != '_' and k != 'manager')
- info = ", ".join("%s=%s" % (k, getattr(self, k)) for k in reprkeys)
- return "<%s %s>" % (self.__class__.__name__, info)
-
- def get(self):
- # set_loaded() first ... so if we have to bail, we know we tried.
- self.set_loaded(True)
- if not hasattr(self.manager, 'get'):
- return
-
- new = self.manager.get(self.id)
- if new:
- self._add_details(new._info)
-
- def __eq__(self, other):
- if not isinstance(other, self.__class__):
- return False
- if hasattr(self, 'id') and hasattr(other, 'id'):
- return self.id == other.id
- return self._info == other._info
-
- def is_loaded(self):
- return self._loaded
-
- def set_loaded(self, val):
- self._loaded = val
-
- def to_dict(self):
- return copy.deepcopy(self._info)