コード例 #1
0
 def test_server_get3_fails(self):
     lb_id, sf_id = self._create_lb_and_sf('1', 'tenant1')
     server_values = get_fake_server(sf_id, 1)
     server_ref1 = db_api.server_create(self.conf, server_values)
     with self.assertRaises(exception.ServerNotFound):
         db_api.server_get(self.conf,
             server_ref1['id'], tenant_id='tenant2')
コード例 #2
0
 def test_server_destroy(self):
     values = get_fake_server('1', 1)
     server = db_api.server_create(self.conf, values)
     db_api.server_destroy(self.conf, server['id'])
     with self.assertRaises(exception.ServerNotFound) as cm:
         db_api.server_get(self.conf, server['id'])
     err = cm.exception
     self.assertEqual(err.kwargs, {'server_id': server['id']})
コード例 #3
0
ファイル: api.py プロジェクト: yinyangxu/openstack-lbaas
def lb_change_node_status(conf, lb_id, lb_node_id, lb_node_status):
    balancer_instance = vserver.Balancer(conf)
    balancer_instance.loadFromDB(lb_id)

    rs = db_api.server_get(conf, lb_node_id)
    sf = balancer_instance.sf
    if rs['state'] == lb_node_status:
        return "OK"

    rs['state'] = lb_node_status
    rsname = rs['name']
    if rs['parent_id'] != "":
        rs['name'] = rs['parent_id']
    logger.debug("Changing RServer status to: %s" % lb_node_status)
    device_driver = drivers.get_device_driver(
                        balancer_instance.lb['device_id'])
    with device_driver.request_context() as ctx:
        if lb_node_status == "inservice":
            commands.activate_rserver(ctx, sf, rs)
        else:
            commands.suspend_rserver(ctx, sf, rs)

    rs['name'] = rsname
    db_api.server_update(conf, rs['id'], rs)
    return "Node %s has status %s" % (lb_node_id, rs['state'])
コード例 #4
0
 def test_server_get1(self):
     lb_id, sf_id = self._create_lb_and_sf('1', 'tenant1')
     server_values = get_fake_server(sf_id, 1)
     server_ref1 = db_api.server_create(self.conf, server_values)
     server_ref2 = db_api.server_get(self.conf, server_ref1['id'], lb_id)
     self.assertEqual(dict(server_ref1.iteritems()),
                      dict(server_ref2.iteritems()))
コード例 #5
0
ファイル: api.py プロジェクト: wpf500/openstack-lbaas
def lb_delete_node(conf, lb_id, lb_node_id):
    lb = db_api.loadbalancer_get(conf, lb_id)
    sf = db_api.serverfarm_get_all_by_lb_id(conf, lb_id)[0]
    rs = db_api.server_get(conf, lb_node_id)
    db_api.server_destroy(conf, lb_node_id)
    device_driver = drivers.get_device_driver(conf, lb['device_id'])
    with device_driver.request_context() as ctx:
        commands.remove_node_from_loadbalancer(ctx, sf, rs)
    return lb_node_id
コード例 #6
0
    def test_server_get1(self):
        lb_values = get_fake_lb("1", "tenant1")
        lb = db_api.loadbalancer_create(self.conf, lb_values)
        sf_values = get_fake_sf(lb["id"])
        sf = db_api.serverfarm_create(self.conf, sf_values)

        server_values = get_fake_server(sf["id"], 1)
        server_ref1 = db_api.server_create(self.conf, server_values)
        server_ref2 = db_api.server_get(self.conf, server_ref1["id"], lb["id"])
        self.assertEqual(dict(server_ref1.iteritems()), dict(server_ref2.iteritems()))
コード例 #7
0
ファイル: api.py プロジェクト: wpf500/openstack-lbaas
def lb_update_node(conf, lb_id, lb_node_id, lb_node):
    rs = db_api.server_get(conf, lb_node_id)

    lb = db_api.loadbalancer_get(conf, lb_id)
    device_driver = drivers.get_device_driver(conf, lb['device_id'])
    sf = db_api.serverfarm_get(conf, rs['sf_id'])

    with device_driver.request_context() as ctx:
        commands.delete_rserver_from_server_farm(ctx, sf, rs)
        db_api.pack_update(rs, lb_node)
        new_rs = db_api.server_update(conf, rs['id'], rs)
        commands.add_rserver_to_server_farm(ctx, sf, new_rs)
    return db_api.unpack_extra(new_rs)
コード例 #8
0
ファイル: api.py プロジェクト: yinyangxu/openstack-lbaas
def lb_delete_node(conf, lb_id, lb_node_id):
    balancer_instance = vserver.Balancer(conf)
    #Step 1: Load balancer from DB
    balancer_instance.loadFromDB(lb_id)
    #Step 3: Get RS object from DB
    rs = db_api.server_get(conf, lb_node_id)
    #Step 4: Delete RS from DB
    db_api.server_destroy(conf, lb_node_id)

    #Step 5: 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_node_from_loadbalancer(ctx, balancer_instance, rs)
    return lb_node_id
コード例 #9
0
ファイル: api.py プロジェクト: wpf500/openstack-lbaas
def lb_change_node_status(conf, lb_id, lb_node_id, lb_node_status):
    lb = db_api.loadbalancer_get(conf, lb_id)
    rs = db_api.server_get(conf, lb_node_id)
    sf = db_api.serverfarm_get(conf, rs['sf_id'])
    if rs['state'] == lb_node_status:
        return "OK"

    rs['state'] = lb_node_status
    rsname = rs['name']
    if rs['parent_id'] != "":
        rs['name'] = rs['parent_id']
    logger.debug("Changing RServer status to: %s" % lb_node_status)
    device_driver = drivers.get_device_driver(conf, lb['device_id'])
    with device_driver.request_context() as ctx:
        if lb_node_status == "inservice":
            commands.activate_rserver(ctx, sf, rs)
        else:
            commands.suspend_rserver(ctx, sf, rs)

    rs['name'] = rsname
    db_api.server_update(conf, rs['id'], rs)
    return db_api.unpack_extra(rs)
コード例 #10
0
 def showNode(self, req, lb_id, lb_node_id):
     logger.debug("Got showNode request. Request: %s", req)
     return {'node': db_api.unpack_extra(
         db_api.server_get(self.conf, lb_node_id, lb_id))}
コード例 #11
0
 def test_server_get0(self):
     values = get_fake_server('1', 1)
     server_ref1 = db_api.server_create(self.conf, values)
     server_ref2 = db_api.server_get(self.conf, server_ref1['id'])
     self.assertEqual(dict(server_ref1.iteritems()),
                      dict(server_ref2.iteritems()))
コード例 #12
0
ファイル: nodes.py プロジェクト: Frostman/openstack-lbaas
 def show(self, req, tenant_id, lb_id, node_id):
     LOG.debug("Got showNode request. Request: %s", req)
     return {'node': db_api.unpack_extra(
         db_api.server_get(self.conf, node_id, lb_id, tenant_id=tenant_id))}