Exemplo n.º 1
0
def lb_add_nodes(conf, lb_id, lb_nodes):
    id_list = []
    balancer_instance = vserver.Balancer(conf)

    for lb_node in lb_nodes:
        logger.debug("Got new node description %s" % lb_node)
        balancer_instance.loadFromDB(lb_id)
        balancer_instance.removeFromDB()

        rs = db_api.server_pack_extra(lb_node)
        rs['sf_id'] = balancer_instance.sf['id']

        balancer_instance.rs.append(rs)
        balancer_instance.sf._rservers.append(rs)
        balancer_instance.savetoDB()

        rs = balancer_instance.rs[-1]
        device_driver = drivers.get_device_driver(conf, balancer_instance.\
                                                        lb['device_id'])

        with device_driver.request_context() as ctx:
            commands.add_node_to_loadbalancer(ctx, balancer_instance, rs)

        id_list.append({'id': rs['id']})

    return {'nodes': id_list}
Exemplo n.º 2
0
 def test_add_node_to_loadbalancer(self, mock_f1, mock_f2):
     cmd.add_node_to_loadbalancer(self.ctx, self.balancer.sf, self.rserver)
     self.assertTrue(mock_f1.called, "add_rserver not called")
     self.assertTrue(mock_f2.called, "create_rserver not called")
     mock_f1.assert_called_once_with(self.ctx, self.balancer.sf,
                                     self.rserver)
     mock_f2.assert_called_once_with(self.ctx, self.rserver)
Exemplo n.º 3
0
def lb_add_nodes(conf, lb_id, nodes):
    nodes_list = []
    lb = db_api.loadbalancer_get(conf, lb_id)
    sf = db_api.serverfarm_get_all_by_lb_id(conf, lb_id)[0]
    for node in nodes:
        values = db_api.server_pack_extra(node)
        values['sf_id'] = sf['id']
        rs_ref = db_api.server_create(conf, values)
        device_driver = drivers.get_device_driver(conf, lb['device_id'])
        with device_driver.request_context() as ctx:
            commands.add_node_to_loadbalancer(ctx, sf, rs_ref)
        nodes_list.append(db_api.unpack_extra(rs_ref))
    return nodes_list