novaclient.base module

Base utilities to build API operation managers and objects on top of.

class novaclient.base.BootingManagerWithFind(api)

Bases: ManagerWithFind

Like a ManagerWithFind, but has the ability to boot servers.

class novaclient.base.BytesWithMeta(value, resp)

Bases: bytes, RequestIdMixin

class novaclient.base.DictWithMeta(values, resp)

Bases: dict, RequestIdMixin

class novaclient.base.HookableMixin

Bases: object

Mixin 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

class novaclient.base.ListWithMeta(values, resp)

Bases: list, RequestIdMixin

class novaclient.base.Manager(api)

Bases: HookableMixin

Manager for API service.

Managers interact with a particular type of API (servers, flavors, images, etc.) and provide CRUD operations for them.

alternate_service_type(default, allowed_types=())
property api_version
cache_lock = <unlocked _thread.RLock object owner=0 count=0>
property client
completion_cache(cache_type, obj_class, mode)

The completion cache for bash autocompletion.

The completion cache store items that can be used for bash autocompletion, like UUIDs or human-friendly IDs.

A resource listing will clear and repopulate the cache.

A resource create will append to the cache.

Delete is not handled because listings are assumed to be performed often enough to keep the cache reasonably up-to-date.

convert_into_with_meta(item, resp)
resource_class = None
write_to_completion_cache(cache_type, val)
class novaclient.base.ManagerWithFind(api)

Bases: Manager

Like a Manager, but with additional find()/findall() methods.

find(**kwargs)

Find a single item with attributes matching **kwargs.

findall(**kwargs)

Find all items with attributes matching **kwargs.

abstract list()
class novaclient.base.RequestIdMixin

Bases: object

Wrapper class to expose x-openstack-request-id to the caller.

append_request_ids(resp)

Add request_ids as an attribute to the object

Parameters:

resp – Response object or list of Response objects

property request_ids
request_ids_setup()
class novaclient.base.Resource(manager, info, loaded=False, resp=None)

Bases: RequestIdMixin

Base class for OpenStack resources (tenant, user, etc.).

This is pretty much just a bag for attributes.

Populate and bind to a manager.

Parameters:
  • manager – BaseManager object

  • info – dictionary representing resource attributes

  • loaded – prevent lazy-loading if set to True

  • resp – Response or list of Response objects

HUMAN_ID = False
NAME_ATTR = 'name'
property api_version
get()

Support for lazy loading details.

Some clients, such as novaclient have the option to lazy load the details, details which can be loaded with this function.

property human_id

Human-readable ID which can be used for bash completion.

is_loaded()
set_info(key, value)
set_loaded(val)
to_dict()
class novaclient.base.StrWithMeta(value, resp)

Bases: str, RequestIdMixin

class novaclient.base.TupleWithMeta(values, resp)

Bases: tuple, RequestIdMixin

novaclient.base.getid(obj)

Get object’s ID or object.

Abstracts the common pattern of allowing both an object or an object’s ID as a parameter when dealing with relationships.