コード例 #1
0
ファイル: api.py プロジェクト: wpf500/openstack-lbaas
def lb_add_sticky(conf, lb_id, st):
    logger.debug("Got new sticky description %s" % st)
    if st['persistenceType'] is None:
        return
    lb = db_api.loadbalancer_get(conf, lb_id)
    sf = db_api.serverfarm_get_all_by_lb_id(conf, lb_id)[0]
    values = db_api.sticky_pack_extra(st)
    values['sf_id'] = sf['id']
    sticky_ref = db_api.sticky_create(conf, values)
    device_driver = drivers.get_device_driver(conf, lb['device_id'])
    with device_driver.request_context() as ctx:
        commands.add_sticky_to_loadbalancer(ctx, lb, sticky_ref)
    return db_api.unpack_extra(sticky_ref)
コード例 #2
0
ファイル: api.py プロジェクト: yinyangxu/openstack-lbaas
def lb_add_sticky(conf, lb_id, sticky):
    logger.debug("Got new sticky description %s" % sticky)
    if sticky['persistenceType'] is None:
        return

    balancer_instance = vserver.Balancer(conf)

    balancer_instance.loadFromDB(lb_id)
    balancer_instance.removeFromDB()

    st = db_api.sticky_pack_extra(sticky)
    st['sf_id'] = balancer_instance.sf['id']

    balancer_instance.sf._sticky.append(st)
    balancer_instance.savetoDB()

    st = balancer_instance.sf._sticky[-1]

    device_driver = drivers.get_device_driver(conf,
                        balancer_instance.lb['device_id'])
    with device_driver.request_context() as ctx:
        commands.add_sticky_to_loadbalancer(ctx, balancer_instance, st)
    return st['id']