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))
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))
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