Charmed-Kubernetes/kubernetes-master/hooks/relations/openstack-integration/docs/provides.md

3.4 KiB

provides

This is the provides side of the interface layer, for use only by the OpenStack integration charm itself.

The flags that are set by the provides side of this interface are:

  • endpoint.{endpoint_name}.requested This flag is set when there is a new or updated request by a remote unit for OpenStack integration features. The OpenStack integration charm should then iterate over each request, perform whatever actions are necessary to satisfy those requests, and then mark them as complete.

OpenStackIntegrationProvides

OpenStackIntegrationProvides(endpoint_name, relation_ids=None)

Example usage:

from charms.reactive import when, endpoint_from_flag
from charms import layer

@when('endpoint.openstack.requests-pending')
def handle_requests():
    openstack = endpoint_from_flag('endpoint.openstack.requests-pending')
    for request in openstack.requests:
        request.set_credentials(layer.openstack.get_user_credentials())
    openstack.mark_completed()

all_requests

A list of all of the IntegrationRequests that have been made.

new_requests

A list of the new or updated IntegrationRequests that have been made.

mark_completed

OpenStackIntegrationProvides.mark_completed()

Mark all requests as completed and remove the requests-pending flag.

IntegrationRequest

IntegrationRequest(unit)

A request for integration from a single remote unit.

has_credentials

Whether or not credentials have been set via set_credentials.

is_changed

Whether this request has changed since the last time it was marked completed (if ever).

set_credentials

IntegrationRequest.set_credentials(auth_url,
                                   region,
                                   username,
                                   password,
                                   user_domain_name,
                                   project_domain_name,
                                   project_name,
                                   endpoint_tls_ca,
                                   version=None)

Set the credentials for this request.

set_lbaas_config

IntegrationRequest.set_lbaas_config(subnet_id,
                                    floating_network_id,
                                    lb_method,
                                    manage_security_groups,
                                    has_octavia=None)

Set the load-balancer-as-a-service config for this request.

set_block_storage_config

IntegrationRequest.set_block_storage_config(bs_version, trust_device_path,
                                            ignore_volume_az)

Set the block storage config for this request.