Пример #1
0
def enable_hosts(masakari_client=None):
    """Enable all hypervisors within masakari.

    Enable all hosts across all segments within masakari. This does not
    enable the hypervisor from a nova POV.

    :param masakari_client: Authenticated masakari client
    :type masakari_client: openstack.instance_ha.v1._proxy.Proxy
    """
    if not masakari_client:
        keystone_session = openstack_utils.get_overcloud_keystone_session()
        masakari_client = openstack_utils.get_masakari_session_client(
            keystone_session)

    for segment in masakari_client.segments():
        for host in masakari_client.hosts(segment_id=segment.uuid):
            if host.on_maintenance:
                enable_host(masakari_client, host.uuid, segment.uuid)
Пример #2
0
def create_segments(segment_number=1, host_assignment_method=None):
    """Create a masakari segment and populate it with hypervisors.

    :param segment_number: Number of segments to create
    :type segment_number: int
    :param host_assignment_method: Method to use to assign hypervisors to
                                   segments
    :type host_assignment_method: f()
    """
    host_assignment_method = host_assignment_method or ROUND_ROBIN
    keystone_session = openstack_utils.get_overcloud_keystone_session()
    nova_client = openstack_utils.get_nova_session_client(keystone_session)
    masakari_client = openstack_utils.get_masakari_session_client(
        keystone_session)
    for segment_number in range(0, segment_number):
        segment_name = 'seg{}'.format(segment_number)
        logging.info('Creating segment {}'.format(segment_name))
        masakari_client.create_segment(name=segment_name,
                                       recovery_method='auto',
                                       service_type='COMPUTE')
    HOST_ASSIGNMENT_METHODS[host_assignment_method](nova_client,
                                                    masakari_client)