# ironicclient.common.apiclient.base module

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

class `ironicclient.common.apiclient.base.``BaseManager`(client)

  Bases: `ironicclient.common.apiclient.base.HookableMixin`

  Basic 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 `ironicclient.common.apiclient.base.``CrudManager`(client)

  Bases: `ironicclient.common.apiclient.base.BaseManager`

  Base 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 `ironicclient.common.apiclient.base.``Extension`(name, module)

  Bases: `ironicclient.common.apiclient.base.HookableMixin`

  Extension descriptor.

  `SUPPORTED_HOOKS` = ('__pre_parse_args__', '__post_parse_args__')
  `manager_class` = None

class `ironicclient.common.apiclient.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 `ironicclient.common.apiclient.base.``ManagerWithFind`(client)

  Bases: `ironicclient.common.apiclient.base.BaseManager`

  Manager 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.

  `list`()

class `ironicclient.common.apiclient.base.``Resource`(manager, info, loaded=False)

  Bases: `object`

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

  This is pretty much just a bag for attributes.

  `HUMAN_ID` = False
  `NAME_ATTR` = 'name'
  `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.

  `human_id`

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

  `is_loaded`()
  `set_loaded`(val)
  `to_dict`()

`ironicclient.common.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.

this page last updated: 2020-04-10 14:03:55

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug questions?