Exemplo n.º 1
0
def floating_disassociate(floating, **kwargs):
    rc = create_rc_by_floating(floating)
    LOG.info("floating action, [%s][disassociate][port:%s]" % (floating.id, floating.port_id));
    try:
        if floating.uuid and floating.port_id:
            network.floating_ip_disassociate(rc, floating.uuid, floating.port_id)

        if floating.resource_type == 'INSTANCE':
            ins = Instance.objects.get(pk=floating.resource)
            ins.public_ip = None
            ins.save()
        elif floating.resource_type == 'LOADBALANCER':
            pool = BalancerPool.objects.get(pk=floating.resource)
            vip = BalancerVIP.objects.get(pk=pool.vip.id)
            vip.public_address = None
            vip.save()
        #floating.instance = None
        floating.resource = None
        floating.resource_type = None
        floating.status = FLOATING_AVAILABLE
        floating.fixed_ip = None
        floating.port_id = None
        floating.save()
    except Exception as e:
        return False
Exemplo n.º 2
0
def floating_disassociate(floating, **kwargs):
    rc = create_rc_by_floating(floating)
    LOG.info("floating action, [%s][disassociate][port:%s]" %
             (floating.id, floating.port_id))
    try:
        if floating.uuid and floating.port_id:
            network.floating_ip_disassociate(rc, floating.uuid,
                                             floating.port_id)

        if floating.resource_type == 'INSTANCE':
            ins = Instance.objects.get(pk=floating.resource)
            ins.public_ip = None
            ins.save()
        elif floating.resource_type == 'LOADBALANCER':
            pool = BalancerPool.objects.get(pk=floating.resource)
            vip = BalancerVIP.objects.get(pk=pool.vip.id)
            vip.public_address = None
            vip.save()
        #floating.instance = None
        floating.resource = None
        floating.resource_type = None
        floating.status = FLOATING_AVAILABLE
        floating.fixed_ip = None
        floating.port_id = None
        floating.save()
    except Exception as e:
        return False
Exemplo n.º 3
0
def vip_disassociate_floating_ip(vip=None, float_ip_uuid=None):
    rc = create_rc_by_balancer_vip(vip)
    try:
        network.floating_ip_disassociate(rc, float_ip_uuid, vip.port_id)
        return True
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 4
0
def vip_disassociate_floating_ip(vip=None, float_ip_uuid=None):
    rc = create_rc_by_balancer_vip(vip)
    try:
        network.floating_ip_disassociate(rc, float_ip_uuid, vip.port_id)
        return True
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 5
0
def floating_disassociate(floating, **kwargs):
    rc = create_rc_by_floating(floating)
    LOG.info("floating action, [%s][disassociate][port:%s]" % (floating.id, floating.port_id))
    if floating.uuid and floating.port_id:
        network.floating_ip_disassociate(rc, floating.uuid, floating.port_id)
    floating.instance = None
    floating.status = FLOATING_AVAILABLE
    floating.fixed_ip = None
    floating.port_id = None
    floating.save()
Exemplo n.º 6
0
def vip_disassociate_floating_ip(vip, float_ip_uuid):
    rc = create_rc_by_balancer_vip(vip)

    LOG.info("Begin to disassociate floating ip[%s] from vip[%s]",
             float_ip_uuid, vip)
    try:
        network.floating_ip_disassociate(rc, float_ip_uuid, vip.port_id)
    except Exception:
        LOG.exception("Failed to disassociate floating ip[%s] from vip[%s]",
                      float_ip_uuid, vip)
        return False
    else:
        LOG.info("Floating ip[%s] is disassociated from vip[%s]",
                 float_ip_uuid, vip)
        return True
Exemplo n.º 7
0
def floating_disassociate(floating, **kwargs):
    LOG.info("Begin to disassociate floating [%s]", floating)
    try:
        if floating.uuid and floating.port_id:
            rc = create_rc_by_floating(floating)
            network.floating_ip_disassociate(rc, floating.uuid,
                                             floating.port_id)
    except Exception:
        LOG.exception("Failed to disassociate floating[%s]", floating)
        floating.status = FLOATING_BINDED
        floating.save()
        return False
    else:
        floating.unbind_resource()
        LOG.info("Floating IP[%s] is disassociated.", floating)
        return True