Exemplo n.º 1
0
def pool_create_task(pool):

    assert pool is not None

    LOG.info("Begin to create balancer pool[%s]", pool)

    try:
        rc = create_rc_by_balancer_pool(pool)
        name = "balancer-pool-%04d%04d" % (pool.user.id, pool.id)
        lbaas_pool = lbaas.pool_create(
            rc, name=name, description=pool.description,
            subnet_id=pool.subnet.subnet_id,
            protocol=pool.protocol_text,
            lb_method=pool.lb_method_text,
            admin_state_up=pool.admin_state_up,
            provider=pool.get_provider_display())

    except Exception:
        LOG.exception("Failed to create balancer pool[%s]", pool)
        pool.status = POOL_ERROR
        pool.save()
        return False
    else:
        LOG.info("Balancer pool[%s] is created. uuid[%s]", pool,
                 lbaas_pool.id)
        pool.pool_uuid = lbaas_pool.id
        pool.status = POOL_ACTIVE
        pool.save()
        return True
Exemplo n.º 2
0
def pool_delete(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        lbaas.pool_delete(rc, pool.pool_uuid)
        return True
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 3
0
def pool_get(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        p = lbaas.pool_get(rc,pool_id=pool.pool_uuid)
        return p
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 4
0
def pool_monitor_association_delete(pool, monitor_uuid):
    rc = create_rc_by_balancer_pool(pool)
    try:
        lbaas.pool_monitor_association_delete(rc, pool_id=pool.pool_uuid, monitor_id=monitor_uuid)
        return True
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 5
0
def pool_get(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        p = lbaas.pool_get(rc,pool_id=pool.pool_uuid)
        return p
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 6
0
def pool_delete(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        lbaas.pool_delete(rc, pool.pool_uuid)
        return True
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 7
0
def pool_monitor_association_delete(pool, monitor_uuid):
    rc = create_rc_by_balancer_pool(pool)
    try:
        lbaas.pool_monitor_association_delete(rc,
                                              pool_id=pool.pool_uuid,
                                              monitor_id=monitor_uuid)
        return True
    except Exception as e:
        LOG.exception(e)
        return False
Exemplo n.º 8
0
def pool_delete_task(pool):
    assert pool is not None

    LOG.info("Begin to delete balancer pool id[%s],name[%s], uuid[%s]",
             pool.id, pool.name, pool.pool_uuid)

    for member in BalancerMember.objects.filter(deleted=False, pool=pool):
        try:
            pool_member_delete(member)
        except neutronclient.common.exceptions.NotFound:
            pass
        except Exception:
            # Even member not deleted successfully, when delete pool in
            # openstack, members will be deleted
            LOG.exception("Failed to delete pool member[%s] of pool [%s][%s]",
                          member.id, pool.id, pool.name)

        member.deleted = True
        member.save()
        LOG.info("Pool member[%s] of pool[%s][%s] is deleted",
                 member.id, pool.id, pool.name)

    vip = pool.vip
    if vip:
        if not pool_vip_delete_task(vip, pool):
            LOG.error("Failed to delete vip of pool. vip[%s], pool[%s]",
                      vip, pool)
            return False

    for pool_monitor in BalancerPoolMonitor.objects.filter(pool=pool.id):
        # monitors in openstack will be deleted automatically, so no need to
        # delete it manually
        pool_monitor.delete()
        LOG.info("Pool monitor[%s] is deleted", pool_monitor.id)

    if pool.pool_uuid:

        try:
            rc = create_rc_by_balancer_pool(pool)
            lbaas.pool_delete(rc, pool.pool_uuid)
        except neutronclient.common.exceptions.NotFound:
            pass
        except Exception:
            LOG.exception("Failed to delete balancer pool[id:%s],[uuid:%s]",
                          pool.id, pool.pool_uuid)
            pool.status = POOL_ERROR
            pool.save()
            return False

    pool.pool_uuid = ''
    pool.status = POOL_DOWN
    pool.deleted = True
    pool.save()
    LOG.info("Balancer pool is deleted. Pool: [%s]", pool)
    return True
Exemplo n.º 9
0
def pool_update(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        params = {'pool': {'description': pool.description,
                           'lb_method': pool.get_lb_method_display()
                           }}
        p = lbaas.pool_update(rc, pool_id=pool.pool_uuid, **params)
        return p
    except Exception as e:
        LOG.exception(e)
        return None
Exemplo n.º 10
0
def pool_monitor_association_create(pool, monitor):
    rc = create_rc_by_balancer_pool(pool)
    LOG.info("Begin to associate pool monitor[%s] with pool[%s]", monitor, pool)
    try:
        lbaas.pool_monitor_association_create(rc, pool_id=pool.pool_uuid,
                                              monitor_id=monitor.monitor_uuid)
    except Exception:
        LOG.exception("Failed to associate pool monitor[%s] with pool[%s]",
                      monitor, pool)
        return False
    else:
        BalancerPoolMonitor.objects.create(pool=pool, monitor=monitor)
        LOG.info("Pool monitor[%s] is associated to pool[%s]", monitor, pool)
        return True
Exemplo n.º 11
0
def pool_update(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        params = {
            'pool': {
                'description': pool.description,
                'lb_method': pool.get_lb_method_display()
            }
        }
        p = lbaas.pool_update(rc, pool_id=pool.pool_uuid, **params)
        return p
    except Exception as e:
        LOG.exception(e)
        return None
Exemplo n.º 12
0
def pool_create(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        p = lbaas.pool_create(rc,
                              name="balancer-pool-%04d%04d" %
                              (pool.user.id, pool.id),
                              description=pool.description,
                              subnet_id=pool.subnet.subnet_id,
                              protocol=pool.get_protocol_display(),
                              lb_method=pool.get_lb_method_display(),
                              admin_state_up=pool.admin_state_up,
                              provider=pool.get_provider_display())
        return p
    except Exception as e:
        LOG.exception(e)
        return None
Exemplo n.º 13
0
def pool_create(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    try:
        p = lbaas.pool_create(rc,
                                 name="balancer-pool-%04d%04d" % (
                                     pool.user.id, pool.id),
                                 description=pool.description,
                                 subnet_id=pool.subnet.subnet_id,
                                 protocol=pool.get_protocol_display(),
                                 lb_method=pool.get_lb_method_display(),
                                 admin_state_up=pool.admin_state_up,
                                 provider=pool.get_provider_display()
                                 )
        return p
    except Exception as e:
        LOG.exception(e)
        return None
Exemplo n.º 14
0
def pool_monitor_association_delete(pool, monitor):
    rc = create_rc_by_balancer_pool(pool)
    LOG.info("Begin to disassociate pool monitor[%s] from pool[%s]",
             monitor, pool)
    try:
        lbaas.pool_monitor_association_delete(rc, pool_id=pool.pool_uuid,
                                              monitor_id=monitor.monitor_uuid)

    except neutronclient.common.exceptions.NotFound:
        pass
    except Exception:
        LOG.exception("Begin to disassociate pool monitor[%s] from pool[%s]",
                      monitor, pool)
        return False

    LOG.info("Pool monitor[%s] is disassociated from pool[%s]",
             monitor, pool)
    BalancerPoolMonitor.objects.filter(pool=pool, monitor=monitor).delete()
    return True
Exemplo n.º 15
0
def pool_update_task(pool):

    assert pool is not None

    LOG.info("Begin to update balancer pool[%s][%s].", pool.id, pool.name)

    rc = create_rc_by_balancer_pool(pool)
    try:
        params = {'pool': {'description': pool.description,
                           'lb_method': pool.get_lb_method_display()}}

        update_result = lbaas.pool_update(rc, pool_id=pool.pool_uuid, **params)
    except Exception:
        LOG.exception("Failed to update balancer pool[%s][%s].",
                      pool.id, pool.name)
        pool.status = POOL_ERROR
        pool.save()
        return False
    else:
        LOG.info("Balancer[%s][%s] pool is updated. uuid[%s]",
                 pool.id, pool.name, update_result.id)
        pool.status = POOL_ACTIVE
        pool.save()
        return True
Exemplo n.º 16
0
def pool_delete(pool=None):
    rc = create_rc_by_balancer_pool(pool)
    lbaas.pool_delete(rc, pool.pool_uuid)