Example #1
0
def delete_for_instance(context, **kwargs):
    expect_keys = [
        'tenant_id', 'instance_uuid',
    ]
    utils.check_input_parameters(expect_keys, **kwargs)

    instance_uuid = kwargs['instance_uuid']
    try:
        load_balancers = db.load_balancer_get_by_instance_uuid(context,
                                                               instance_uuid)
        for load_balancer_ref in load_balancers:
            try:
                if load_balancer_ref.free:
                    args = {
                        'tenant_id': context.tenant_id,
                        'uuid': load_balancer_ref.uuid,
                    }
                    delete_load_balancer(context, **args)
                elif load_balancer_ref.state != state.DELETING:
                    old_instance_uuids = map(lambda x: x['instance_uuid'],
                                             load_balancer_ref.instances)
                    new_instance_uuids = filter(lambda x: x != instance_uuid,
                                                old_instance_uuids)
                    args = {
                        'tenant_id': context.tenant_id,
                        'user_id': context.user_id,
                        'protocol': load_balancer_ref.protocol,
                        'uuid': load_balancer_ref.uuid,
                        'instance_uuids': new_instance_uuids,
                    }
                    update_load_balancer_instances(context, **args)
            except Exception, exp:
                LOG.info('delete_for_instance: failed for %s', str(exp))
    except Exception, exp:
        raise exception.DeleteForInstanceFailed(msg=str(exp))
Example #2
0
def get_load_balancer_by_instance_uuid(context, **kwargs):
    expect_keys = [
        'tenant_id', 'instance_uuid',
    ]
    utils.check_input_parameters(expect_keys, **kwargs)
    result = None
    uuid = kwargs['instance_uuid']
    try:
        load_balancer_ref = db.load_balancer_get_by_instance_uuid(context,
                                                                  uuid)
        result = format_msg_to_client(load_balancer_ref)
    except Exception, exp:
        raise exception.GetLoadBalancerFailed(msg=str(exp))
Example #3
0
def create_for_instance(context, **kwargs):
    expect_keys = [
        'user_id', 'tenant_id', 'instance_uuid', 'instance_port',
    ]
    utils.check_input_parameters(expect_keys, **kwargs)

    instance_uuid = kwargs['instance_uuid']
    instance_port = kwargs['instance_port']
    try:
        load_balancers = db.load_balancer_get_by_instance_uuid(context,
                                                               instance_uuid)
        for load_balancer_ref in load_balancers:
            if load_balancer_ref.free:
                break
        result = format_msg_to_client(load_balancer_ref)
    except exception.LoadBalancerNotFoundByInstanceUUID, exp:
        pass