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}
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)
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