troveclient.apiclient.base module¶
Base utilities to build API operation managers and objects on top of.
-
class
troveclient.apiclient.base.BaseManager(client)¶ Bases:
troveclient.apiclient.base.HookableMixinBasic manager type providing common operations.
Managers interact with a particular type of API (servers, flavors, images, etc.) and provide CRUD operations for them.
-
resource_class= None¶
-
-
class
troveclient.apiclient.base.CrudManager(client)¶ Bases:
troveclient.apiclient.base.BaseManagerBase manager class for manipulating entities.
Children of this class are expected to define a collection_key and key.
collection_key: Usually a plural noun by convention (e.g. entities); used to refer collections in both URL’s (e.g. /v3/entities) and JSON objects containing a list of member resources (e.g. {‘entities’: [{}, {}, {}]}).
key: Usually a singular noun by convention (e.g. entity); used to refer to an individual member of the collection.
-
build_url(base_url=None, **kwargs)¶ Builds a resource URL for the given kwargs.
Given an example collection where collection_key = ‘entities’ and key = ‘entity’, the following URL’s could be generated.
By default, the URL will represent a collection of entities, e.g.:
/entities
If kwargs contains an entity_id, then the URL will represent a specific member, e.g.:
/entities/{entity_id}
- Parameters
base_url – if provided, the generated URL will be appended to it
-
collection_key= None¶
-
create(**kwargs)¶
-
delete(**kwargs)¶
-
find(base_url=None, **kwargs)¶ Find a single item with attributes matching
**kwargs.- Parameters
base_url – if provided, the generated URL will be appended to it
-
get(**kwargs)¶
-
head(**kwargs)¶
-
key= None¶
-
list(base_url=None, **kwargs)¶ List the collection.
- Parameters
base_url – if provided, the generated URL will be appended to it
-
put(base_url=None, **kwargs)¶ Update an element.
- Parameters
base_url – if provided, the generated URL will be appended to it
-
update(**kwargs)¶
-
class
troveclient.apiclient.base.Extension(name, module)¶ Bases:
troveclient.apiclient.base.HookableMixinExtension descriptor.
-
SUPPORTED_HOOKS= ('__pre_parse_args__', '__post_parse_args__')¶
-
manager_class= None¶
-
-
class
troveclient.apiclient.base.HookableMixin¶ Bases:
objectMixin so classes can register and run hooks.
-
classmethod
add_hook(hook_type, hook_func)¶ Add a new hook of specified type.
- Parameters
cls – class that registers hooks
hook_type – hook type, e.g., ‘__pre_parse_args__’
hook_func – hook function
-
classmethod
run_hooks(hook_type, *args, **kwargs)¶ Run all hooks of specified type.
- Parameters
cls – class that registers hooks
hook_type – hook type, e.g., ‘__pre_parse_args__’
args – args to be passed to every hook function
kwargs – kwargs to be passed to every hook function
-
classmethod
-
class
troveclient.apiclient.base.ManagerWithFind(client)¶ Bases:
troveclient.apiclient.base.BaseManagerManager with additional find()/findall() methods.
-
find(**kwargs)¶ Find a single item with attributes matching
**kwargs.This isn’t very efficient: it loads the entire list then filters on the Python side.
-
findall(**kwargs)¶ Find all items with attributes matching
**kwargs.This isn’t very efficient: it loads the entire list then filters on the Python side.
-
abstract
list()¶
-
-
class
troveclient.apiclient.base.Resource(manager, info, loaded=False)¶ Bases:
objectBase class for OpenStack resources (tenant, user, etc.).
This is pretty much just a bag for attributes.
-
HUMAN_ID= False¶
-
NAME_ATTR= 'name'¶
-
property
human_id¶ Human-readable ID which can be used for bash completion.
-
property
is_loaded¶
-
to_dict()¶
-
-
troveclient.apiclient.base.getid(obj)¶ Return id if argument is a Resource.
Abstracts the common pattern of allowing both an object or an object’s ID (UUID) as a parameter when dealing with relationships.