예제 #1
0
 def test_sticky_destroy(self):
     values = get_fake_sticky('1')
     sticky = db_api.sticky_create(self.conf, values)
     db_api.sticky_destroy(self.conf, sticky['id'])
     with self.assertRaises(exception.StickyNotFound) as cm:
         db_api.sticky_get(self.conf, sticky['id'])
     err = cm.exception
     self.assertEqual(err.kwargs, {'sticky_id': sticky['id']})
예제 #2
0
def lb_delete_sticky(conf, lb_id, sticky_id):
    lb = db_api.loadbalancer_get(conf, lb_id)
    sticky = db_api.sticky_get(conf, sticky_id)
    device_driver = drivers.get_device_driver(conf, lb['device_id'])
    with device_driver.request_context() as ctx:
        commands.remove_sticky_from_loadbalancer(ctx, lb, sticky)
    db_api.sticky_destroy(conf, sticky_id)
    return sticky_id
예제 #3
0
def lb_delete_sticky(conf, lb_id, sticky_id):
    balancer_instance = vserver.Balancer(conf)

    #Step 1: Load balancer from DB
    balancer_instance.loadFromDB(lb_id)

    #Step 3: Get sticky object from DB
    st = db_api.sticky_get(conf, sticky_id)

    #Step 4: Delete real server from device
    device_driver = drivers.get_device_driver(conf,
                        balancer_instance.lb['device_id'])
    with device_driver.request_context() as ctx:
        commands.remove_sticky_from_loadbalancer(ctx, balancer_instance, st)

    #Step 5: Delete sticky from DB
    db_api.sticky_destroy(conf, sticky_id)
    return sticky_id
예제 #4
0
 def test_sticky_get(self):
     values = get_fake_sticky('1')
     sticky_ref1 = db_api.sticky_create(self.conf, values)
     sticky_ref2 = db_api.sticky_get(self.conf, sticky_ref1['id'])
     self.assertEqual(dict(sticky_ref1.iteritems()),
                      dict(sticky_ref2.iteritems()))
예제 #5
0
 def test_sticky_get_with_tenant_fails(self):
     lb_id, sf_id = self._create_lb_and_sf('1', 'tenant1')
     sticky_ref = db_api.sticky_create(self.conf, get_fake_sticky(sf_id))
     with self.assertRaises(exception.StickyNotFound):
         db_api.sticky_get(self.conf, sticky_ref['id'], tenant_id='tenant2')
예제 #6
0
 def show(self, req, tenant_id, lb_id, sticky_id):
     LOG.debug("Got showStickiness request. Request: %s", req)
     sticky = db_api.sticky_get(self.conf, sticky_id, tenant_id=tenant_id)
     return {"sessionPersistence": db_api.unpack_extra(sticky)}
예제 #7
0
 def showSticky(self, req, lb_id, id):
     logger.debug("Got showStickiness request. Request: %s", req)
     sticky = db_api.sticky_get(self.conf, id)
     return {"sessionPersistence": db_api.unpack_extra(sticky)}