Cluster API

The Cluster Class

The cluster high-level interface is available through the cluster member of a Connection object. The cluster member will only be added if the service is detected.

Build Info Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_build_info()

Get build info for service engine and API

Returns:A dictionary containing the API and engine revision string.

Profile Type Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
profile_types(**query)

Get a generator of profile types.

Returns:A generator of objects that are of type ProfileType
get_profile_type(profile_type)

Get the details about a profile type.

Parameters:profile_type – The name of the profile_type to retrieve or an object of ProfileType.
Returns:A ProfileType object.
Raises:ResourceNotFound when no profile_type matching the name could be found.

Profile Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_profile(**attrs)

Create a new profile from attributes.

Parameters:attrs (dict) – Keyword arguments that will be used to create a Profile, it is comprised of the properties on the Profile class.
Returns:The results of profile creation.
Return type:Profile.
update_profile(profile, **attrs)

Update a profile.

Parameters:
  • profile – Either the name or the ID of the profile, or an instance of Profile.
  • attrs – The attributes to update on the profile represented by the value parameter.
Returns:

The updated profile.

Return type:

Profile

delete_profile(profile, ignore_missing=True)

Delete a profile.

Parameters:
  • profile – The value can be either the name or ID of a profile or a Profile instance.
  • ignore_missing (bool) – When set to False, an exception ResourceNotFound will be raised when the profile could not be found. When set to True, no exception will be raised when attempting to delete a non-existent profile.
Returns:

None

get_profile(profile)

Get a single profile.

Parameters:profile – The value can be the name or ID of a profile or a Profile instance.
Returns:One Profile
Raises:ResourceNotFound when no profile matching the criteria could be found.
find_profile(name_or_id, ignore_missing=True)

Find a single profile.

Parameters:
  • name_or_id (str) – The name or ID of a profile.
  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the resource does not exist. When set to True, None will be returned when attempting to find a nonexistent resource.
Returns:

One Profile object or None

profiles(**query)

Retrieve a generator of profiles.

Parameters:query (kwargs) –

Optional query parameters to be sent to restrict the profiles to be returned. Available parameters include:

  • name: The name of a profile.
  • type: The type name of a profile.
  • metadata: A list of key-value pairs that are associated with a
    profile.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • limit: Requests a specified size of returned items from the
    query. Returns a number of items up to the specified limit value.
  • marker: Specifies the ID of the last-seen item. Use the limit
    parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
  • global_project: A boolean value indicating whether profiles
    from all projects will be returned.
Returns:A generator of profile instances.
validate_profile(**attrs)

Validate a profile spec.

Parameters:attrs (dict) – Keyword arguments that will be used to create a ProfileValidate, it is comprised of the properties on the Profile class.
Returns:The results of profile validation.
Return type:ProfileValidate.

Policy Type Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
policy_types(**query)

Get a generator of policy types.

Returns:A generator of objects that are of type PolicyType
get_policy_type(policy_type)

Get the details about a policy type.

Parameters:policy_type – The name of a poicy_type or an object of PolicyType.
Returns:A PolicyType object.
Raises:ResourceNotFound when no policy_type matching the name could be found.

Policy Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_policy(**attrs)

Create a new policy from attributes.

Parameters:attrs (dict) – Keyword arguments that will be used to create a Policy, it is comprised of the properties on the Policy class.
Returns:The results of policy creation.
Return type:Policy.
update_policy(policy, **attrs)

Update a policy.

Parameters:
  • policy – Either the name or the ID of a policy, or an instance of Policy.
  • attrs – The attributes to update on the policy represented by the value parameter.
Returns:

The updated policy.

Return type:

Policy

delete_policy(policy, ignore_missing=True)

Delete a policy.

Parameters:
  • policy – The value can be either the name or ID of a policy or a Policy instance.
  • ignore_missing (bool) – When set to False, an exception ResourceNotFound will be raised when the policy could not be found. When set to True, no exception will be raised when attempting to delete a non-existent policy.
Returns:

None

get_policy(policy)

Get a single policy.

Parameters:policy – The value can be the name or ID of a policy or a Policy instance.
Returns:A policy object.
Return type:Policy
Raises:ResourceNotFound when no policy matching the criteria could be found.
find_policy(name_or_id, ignore_missing=True)

Find a single policy.

Parameters:
  • name_or_id (str) – The name or ID of a policy.
  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the specified policy does not exist. When set to True, None will be returned when attempting to find a nonexistent policy.
Returns:

A policy object or None.

Return type:

Policy

policies(**query)

Retrieve a generator of policies.

Parameters:query (kwargs) –

Optional query parameters to be sent to restrict the policies to be returned. Available parameters include:

  • name: The name of a policy.
  • type: The type name of a policy.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • limit: Requests a specified size of returned items from the
    query. Returns a number of items up to the specified limit value.
  • marker: Specifies the ID of the last-seen item. Use the limit
    parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
  • global_project: A boolean value indicating whether policies from
    all projects will be returned.
Returns:A generator of policy instances.
validate_policy(**attrs)

Validate a policy spec.

Parameters:attrs (dict) – Keyword arguments that will be used to create a PolicyValidate, it is comprised of the properties on the Policy class.
Returns:The results of Policy validation.
Return type:PolicyValidate.

Cluster Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_cluster(**attrs)

Create a new cluster from attributes.

Parameters:attrs (dict) – Keyword arguments that will be used to create a Cluster, it is comprised of the properties on the Cluster class.
Returns:The results of cluster creation.
Return type:Cluster.
update_cluster(cluster, **attrs)

Update a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • attrs – The attributes to update on the cluster represented by the cluster parameter.
Returns:

The updated cluster.

Return type:

Cluster

delete_cluster(cluster, ignore_missing=True, force_delete=False)

Delete a cluster.

Parameters:
  • cluster – The value can be either the name or ID of a cluster or a Cluster instance.
  • ignore_missing (bool) – When set to False, an exception ResourceNotFound will be raised when the cluster could not be found. When set to True, no exception will be raised when attempting to delete a non-existent cluster.
  • force_delete (bool) – When set to True, the cluster deletion will be forced immediately.
Returns:

The instance of the Cluster which was deleted.

Return type:

Cluster.

get_cluster(cluster)

Get a single cluster.

Parameters:cluster – The value can be the name or ID of a cluster or a Cluster instance.
Returns:One Cluster
Raises:ResourceNotFound when no cluster matching the criteria could be found.
find_cluster(name_or_id, ignore_missing=True)

Find a single cluster.

Parameters:
  • name_or_id (str) – The name or ID of a cluster.
  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the resource does not exist. When set to True, None will be returned when attempting to find a nonexistent resource.
Returns:

One Cluster object or None

clusters(**query)

Retrieve a generator of clusters.

Parameters:query (kwargs) –

Optional query parameters to be sent to restrict the clusters to be returned. Available parameters include:

  • name: The name of a cluster.
  • status: The current status of a cluster.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • limit: Requests a specified size of returned items from the
    query. Returns a number of items up to the specified limit value.
  • marker: Specifies the ID of the last-seen item. Use the limit
    parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
  • global_project: A boolean value indicating whether clusters
    from all projects will be returned.
Returns:A generator of cluster instances.
check_cluster(cluster, **params)

Check a cluster.

Parameters:
  • cluster – The value can be either the ID of a cluster or a Cluster instance.
  • params (dict) – A dictionary providing the parameters for the check action.
Returns:

A dictionary containing the action ID.

recover_cluster(cluster, **params)

recover a cluster.

Parameters:
  • cluster – The value can be either the ID of a cluster or a Cluster instance.
  • params (dict) – A dictionary providing the parameters for the recover action.
Returns:

A dictionary containing the action ID.

resize_cluster(cluster, **params)

Resize of cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • params (dict) – A dictionary providing the parameters for the resize action.
Returns:

A dict containing the action initiated by this operation.

scale_in_cluster(cluster, count=None)

Shrink the size of a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • count – Optional parameter specifying the number of nodes to be removed.
Returns:

A dict containing the action initiated by this operation.

scale_out_cluster(cluster, count=None)

Inflate the size of a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • count – Optional parameter specifying the number of nodes to be added.
Returns:

A dict containing the action initiated by this operation.

collect_cluster_attrs(cluster, path)

Collect attribute values across a cluster.

Parameters:
  • cluster – The value can be either the ID of a cluster or a Cluster instance.
  • path – A Json path string specifying the attribute to collect.
Returns:

A dictionary containing the list of attribute values.

perform_operation_on_cluster(cluster, operation, **params)

Perform an operation on the specified cluster.

Parameters:
  • cluster – The value can be either the ID of a cluster or a Cluster instance.
  • operation – A string specifying the operation to be performed.
  • params (dict) – A dictionary providing the parameters for the operation.
Returns:

A dictionary containing the action ID.

add_nodes_to_cluster(cluster, nodes)

Add nodes to a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • nodes – List of nodes to be added to the cluster.
Returns:

A dict containing the action initiated by this operation.

remove_nodes_from_cluster(cluster, nodes, **params)

Remove nodes from a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • nodes – List of nodes to be removed from the cluster.
  • params (kwargs) –

    Optional query parameters to be sent to restrict the nodes to be returned. Available parameters include:

    • destroy_after_deletion: A boolean value indicating whether the
      deleted nodes to be destroyed right away.
Returns:

A dict containing the action initiated by this operation.

replace_nodes_in_cluster(cluster, nodes)

Replace the nodes in a cluster with specified nodes.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • nodes – List of nodes to be deleted/added to the cluster.
Returns:

A dict containing the action initiated by this operation.

attach_policy_to_cluster(cluster, policy, **params)

Attach a policy to a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • policy – Either the name or the ID of a policy.
  • params (dict) – A dictionary containing the properties for the policy to be attached.
Returns:

A dict containing the action initiated by this operation.

update_cluster_policy(cluster, policy, **params)

Change properties of a policy which is bound to the cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • policy – Either the name or the ID of a policy.
  • params (dict) – A dictionary containing the new properties for the policy.
Returns:

A dict containing the action initiated by this operation.

detach_policy_from_cluster(cluster, policy)

Detach a policy from a cluster.

Parameters:
  • cluster – Either the name or the ID of the cluster, or an instance of Cluster.
  • policy – Either the name or the ID of a policy.
Returns:

A dict containing the action initiated by this operation.

get_cluster_policy(cluster_policy, cluster)

Get a cluster-policy binding.

Parameters:
  • cluster_policy – The value can be the name or ID of a policy or a Policy instance.
  • cluster – The value can be the name or ID of a cluster or a Cluster instance.
Returns:

a cluster-policy binding object.

Return type:

CLusterPolicy

Raises:

ResourceNotFound when no cluster-policy binding matching the criteria could be found.

cluster_policies(cluster, **query)

Retrieve a generator of cluster-policy bindings.

Parameters:
  • cluster – The value can be the name or ID of a cluster or a Cluster instance.
  • query (kwargs) –

    Optional query parameters to be sent to restrict the policies to be returned. Available parameters include:

    • enabled: A boolean value indicating whether the policy is
      enabled on the cluster.
Returns:

A generator of cluster-policy binding instances.

Node Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_node(**attrs)

Create a new node from attributes.

Parameters:attrs (dict) – Keyword arguments that will be used to create a Node, it is comprised of the properties on the Node class.
Returns:The results of node creation.
Return type:Node.
update_node(node, **attrs)

Update a node.

Parameters:
  • node – Either the name or the ID of the node, or an instance of Node.
  • attrs – The attributes to update on the node represented by the node parameter.
Returns:

The updated node.

Return type:

Node

delete_node(node, ignore_missing=True, force_delete=False)

Delete a node.

Parameters:
  • node – The value can be either the name or ID of a node or a Node instance.
  • ignore_missing (bool) – When set to False, an exception ResourceNotFound will be raised when the node could not be found. When set to True, no exception will be raised when attempting to delete a non-existent node.
  • force_delete (bool) – When set to True, the node deletion will be forced immediately.
Returns:

The instance of the Node which was deleted.

Return type:

Node.

get_node(node, details=False)

Get a single node.

Parameters:
  • node – The value can be the name or ID of a node or a Node instance.
  • details – An optional argument that indicates whether the server should return more details when retrieving the node data.
Returns:

One Node

Raises:

ResourceNotFound when no node matching the name or ID could be found.

find_node(name_or_id, ignore_missing=True)

Find a single node.

Parameters:
  • name_or_id (str) – The name or ID of a node.
  • ignore_missing (bool) – When set to “False” ResourceNotFound will be raised when the specified node does not exist. when set to “True”, None will be returned when attempting to find a nonexistent policy
Returns:

One Node object or None.

nodes(**query)

Retrieve a generator of nodes.

Parameters:query (kwargs) –

Optional query parameters to be sent to restrict the nodes to be returned. Available parameters include:

  • cluster_id: A string including the name or ID of a cluster to
    which the resulted node(s) is a member.
  • name: The name of a node.
  • status: The current status of a node.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • limit: Requests at most the specified number of items be
    returned from the query.
  • marker: Specifies the ID of the last-seen node. Use the limit
    parameter to make an initial limited request and use the ID of the last-seen node from the response as the marker parameter value in a subsequent limited request.
  • global_project: A boolean value indicating whether nodes
    from all projects will be returned.
Returns:A generator of node instances.
check_node(node, **params)

Check the health of the specified node.

Parameters:
  • node – The value can be either the ID of a node or a Node instance.
  • params (dict) – A dictionary providing the parametes to the check action.
Returns:

A dictionary containing the action ID.

recover_node(node, **params)

Recover the specified node into healthy status.

Parameters:
  • node – The value can be either the ID of a node or a Node instance.
  • params (dict) – A dict supplying parameters to the recover action.
Returns:

A dictionary containing the action ID.

perform_operation_on_node(node, operation, **params)

Perform an operation on the specified node.

Parameters:
  • node – The value can be either the ID of a node or a Node instance.
  • operation – A string specifying the operation to be performed.
  • params (dict) – A dictionary providing the parameters for the operation.
Returns:

A dictionary containing the action ID.

adopt_node(preview=False, **attrs)

Adopting an existing resource as a node.

Parameters:
  • preview – A boolean indicating whether this is a “preview” operation which means only the profile to be used is returned rather than creating a node object using that profile.
  • attrs (dict) –

    Keyword parameters for node adoption. Valid parameters include:

    • type: (Required) A string containing the profile type and
      version to be used for node adoption. For example, os.nova.sever-1.0.
    • identity: (Required) A string including the name or ID of an
      OpenStack resource to be adopted as a Senlin node.
    • name: (Optional) The name of of node to be created. Omitting
      this parameter will have the node named automatically.
    • snapshot: (Optional) A boolean indicating whether a snapshot
      of the target resource should be created if possible. Default is False.
    • metadata: (Optional) A dictionary of arbitrary key-value pairs
      to be associated with the adopted node.
    • overrides: (Optional) A dictionary of key-value pairs to be used
      to override attributes derived from the target resource.
Returns:

The result of node adoption. If preview is set to False (default), returns a Node object, otherwise a Dict is returned containing the profile to be used for the new node.

Receiver Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
create_receiver(**attrs)

Create a new receiver from attributes.

Parameters:attrs (dict) – Keyword arguments that will be used to create a Receiver, it is comprised of the properties on the Receiver class.
Returns:The results of receiver creation.
Return type:Receiver.
update_receiver(receiver, **attrs)

Update a receiver.

Parameters:
  • receiver – The value can be either the name or ID of a receiver or a Receiver instance.
  • attrs – The attributes to update on the receiver parameter. Valid attribute names include name, action and params.
Returns:

The updated receiver.

Return type:

Receiver

delete_receiver(receiver, ignore_missing=True)

Delete a receiver.

Parameters:
  • receiver – The value can be either the name or ID of a receiver or a Receiver instance.
  • ignore_missing (bool) – When set to False, an exception ResourceNotFound will be raised when the receiver could not be found. When set to True, no exception will be raised when attempting to delete a non-existent receiver.
Returns:

None

get_receiver(receiver)

Get a single receiver.

Parameters:receiver – The value can be the name or ID of a receiver or a Receiver instance.
Returns:A receiver object.
Return type:Receiver
Raises:ResourceNotFound when no receiver matching the criteria could be found.
find_receiver(name_or_id, ignore_missing=True)

Find a single receiver.

Parameters:
  • name_or_id (str) – The name or ID of a receiver.
  • ignore_missing (bool) – When set to False ResourceNotFound will be raised when the specified receiver does not exist. When set to True, None will be returned when attempting to find a nonexistent receiver.
Returns:

A receiver object or None.

Return type:

Receiver

receivers(**query)

Retrieve a generator of receivers.

Parameters:query (kwargs) –

Optional query parameters for restricting the receivers to be returned. Available parameters include:

  • name: The name of a receiver object.
  • type: The type of receiver objects.
  • cluster_id: The ID of the associated cluster.
  • action: The name of the associated action.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • global_project: A boolean value indicating whether receivers
  • from all projects will be returned.
Returns:A generator of receiver instances.

Action Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_action(action)

Get a single action.

Parameters:action – The value can be the name or ID of an action or a Action instance.
Returns:an action object.
Return type:Action
Raises:ResourceNotFound when no action matching the criteria could be found.
actions(**query)

Retrieve a generator of actions.

Parameters:query (kwargs) –

Optional query parameters to be sent to restrict the actions to be returned. Available parameters include:

  • name: name of action for query.
  • target: ID of the target object for which the actions should be
    returned.
  • action: built-in action types for query.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • limit: Requests a specified size of returned items from the
    query. Returns a number of items up to the specified limit value.
  • marker: Specifies the ID of the last-seen item. Use the limit
    parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
Returns:A generator of action instances.

Event Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
get_event(event)

Get a single event.

Parameters:event – The value can be the name or ID of an event or a Event instance.
Returns:an event object.
Return type:Event
Raises:ResourceNotFound when no event matching the criteria could be found.
events(**query)

Retrieve a generator of events.

Parameters:query (kwargs) –

Optional query parameters to be sent to restrict the events to be returned. Available parameters include:

  • obj_name: name string of the object associated with an event.
  • obj_type: type string of the object related to an event. The
    value can be cluster, node, policy etc.
  • obj_id: ID of the object associated with an event.
  • cluster_id: ID of the cluster associated with the event, if any.
  • action: name of the action associated with an event.
  • sort: A list of sorting keys separated by commas. Each sorting
    key can optionally be attached with a sorting direction modifier which can be asc or desc.
  • limit: Requests a specified size of returned items from the
    query. Returns a number of items up to the specified limit value.
  • marker: Specifies the ID of the last-seen item. Use the limit
    parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request.
  • global_project: A boolean specifying whether events from all
    projects should be returned. This option is subject to access control checking.
Returns:A generator of event instances.

Helper Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
wait_for_delete(res, interval=2, wait=120)

Wait for a resource to be deleted.

Parameters:
  • res – The resource to wait on to be deleted.
  • interval – Number of seconds to wait before to consecutive checks. Default to 2.
  • wait – Maximum number of seconds to wait before the change. Default to 120.
Returns:

The resource is returned on success.

Raises:

ResourceTimeout if transition to delete failed to occur in the specified seconds.

wait_for_status(res, status, failures=None, interval=2, wait=120)

Wait for a resource to be in a particular status.

Parameters:
  • res – The resource to wait on to reach the specified status. The resource must have a status attribute.
  • status – Desired status.
  • failures (list) – Statuses that would be interpreted as failures.
  • interval – Number of seconds to wait before to consecutive checks. Default to 2.
  • wait – Maximum number of seconds to wait before the change. Default to 120.
Returns:

The resource is returned on success.

Raises:

ResourceTimeout if transition to the desired status failed to occur in specified seconds.

Raises:

ResourceFailure if the resource has transited to one of the failure statuses.

Raises:

AttributeError if the resource does not have a status attribute.

Service Operations

class openstack.clustering.v1._proxy.Proxy(session, statsd_client=None, statsd_prefix=None, prometheus_counter=None, prometheus_histogram=None, influxdb_config=None, influxdb_client=None, *args, **kwargs)
services(**query)

Get a generator of services.

Returns:A generator of objects that are of type Service