def setUp(self): self.vnc_lib = mock.Mock() self.cassandra = mock.Mock() self.logger = mock.Mock() self.svc = mock.Mock() mocked_gsc = mock.MagicMock() mocked_gsc.uuid = 'fake-gsc-uuid' self.vnc_lib.service_appliance_set_create.return_value = "opencontrail" self.vnc_lib.global_system_config_read.return_value = mocked_gsc def no_id_side_effect(fq_name): raise NoIdError("xxx") self.vnc_lib.service_appliance_set_read = mock.Mock(side_effect=no_id_side_effect) conf_parser = argparse.ArgumentParser(add_help=False) config = ConfigParser.SafeConfigParser({'admin_token': None}) self._args, remaining_argv = conf_parser.parse_known_args() self._args.config_sections = config def sas_read_side_effect(obj_type, uuids): if obj_type == 'service_appliance_set': return (True, [{ 'fq_name': ['default-global-system-config', 'opencontrail'], 'service_appliance_driver': 'svc_monitor.services.loadbalancer.drivers.ha_proxy.driver.OpencontrailLoadbalancerDriver' }]) return (False, None) self.cassandra.read = mock.Mock( side_effect=sas_read_side_effect) DBBase.init(self.svc, None, self.cassandra) self.lb_agent = loadbalancer_agent.LoadbalancerAgent(self.svc, self.vnc_lib, self.cassandra, self._args) self.svc.loadbalancer_agent = self.lb_agent sas = config_db.ServiceApplianceSetSM.get('opencontrail') self.assertEqual(sas.driver, "svc_monitor.services.loadbalancer.drivers.ha_proxy.driver.OpencontrailLoadbalancerDriver") sas.add() self.assertIsNotNone(self.lb_agent._loadbalancer_driver['opencontrail'])
def setUp(self): self.vnc_lib = mock.Mock() self.cassandra = mock.Mock() self.logger = mock.Mock() self.svc = mock.Mock() mocked_gsc = mock.MagicMock() mocked_gsc.uuid = 'fake-gsc-uuid' self.vnc_lib.global_system_config_read.return_value = mocked_gsc def mock_kv_retrieve(subnet_id): if subnet_id == "pool_subnet_id": return "fake-pool-vn 40.1.1.0/24" elif subnet_id == "vip_subnet_id": return "fake-vip-vn 1.1.1.0/24" self.assertTrue(False) #end self.vnc_lib.kv_retrieve = mock.Mock(side_effect=mock_kv_retrieve) self.vnc_lib.service_appliance_set_create.return_value = "opencontrail" self._mock_bigip_interfaces = None self._mock_BigIp = None self._db = {} def read_db(id): if id in self._db: return self._db[id].get('driver_info', None) def put_db(id, data): from copy import deepcopy self._db[id] = {'driver_info': deepcopy(data)} def remove_db(id, data=None): if data is None: del self._db[id] return if self._db[id][data[0]]: del self._db[id][data[0]] self.cassandra.pool_driver_info_get = mock.Mock(side_effect=read_db) self.cassandra.pool_driver_info_insert = mock.Mock(side_effect=put_db) self.cassandra.pool_remove = mock.Mock(side_effect=remove_db) conf_parser = argparse.ArgumentParser(add_help=False) config = ConfigParser.SafeConfigParser({'admin_token': None}) self._args, remaining_argv = conf_parser.parse_known_args() self._args.config_sections = config def sas_read_side_effect(obj_type, uuids, **kwargs): if obj_type == 'service_appliance_set': return (True, [{ 'fq_name': ['default-global-system-config', 'opencontrail'], 'service_appliance_driver': 'svc_monitor.services.loadbalancer\ .drivers.ha_proxy.driver.OpencontrailLoadbalancerDriver' }]) return (False, None) DBBase.init(self.svc, None, self.cassandra) config_db.ServiceApplianceSetSM._cassandra.object_read = \ mock.Mock(side_effect=sas_read_side_effect) # return NoIdError exception for first query def no_id_side_effect(fq_name): raise NoIdError("xxx") self.vnc_lib.service_appliance_set_read = \ mock.Mock(side_effect=no_id_side_effect) self.lb_agent = loadbalancer_agent.LoadbalancerAgent( self.svc, self.vnc_lib, self.cassandra, self._args) self.svc.loadbalancer_agent = self.lb_agent sas = config_db.ServiceApplianceSetSM.get('opencontrail') self.assertEqual( sas.driver, "svc_monitor.services.loadbalancer.drivers.ha_proxy.driver.\ OpencontrailLoadbalancerDriver") sas.add() DBBase.init(self.svc, None, self.cassandra) config_db.ServiceApplianceSetSM._cassandra.object_read = \ mock.Mock(side_effect=sas_read_side_effect) import sys sys.modules['f5'] = mock.Mock() sys.modules['f5.bigip'] = mock.Mock() self.create_f5_service_appliance_set()
def setUp(self): self.vnc_lib = mock.Mock() self.cassandra = mock.Mock() self.logger = mock.Mock() self.svc = mock.Mock() self._si_pool = {} mocked_gsc = mock.MagicMock() mocked_gsc.uuid = 'fake-gsc-uuid' self.vnc_lib.global_system_config_read.return_value = mocked_gsc def no_id_side_effect(fq_name): raise NoIdError("xxx") # Return NoIdError while si is read for first time self.vnc_lib.service_instance_read = \ mock.Mock(side_effect=no_id_side_effect) self.vnc_lib.kv_retrieve.return_value = "fake-pool-vn 40.1.1.0/24" self.vnc_lib.service_appliance_set_create.return_value = "opencontrail" self.vnc_lib.service_appliance_set_read = \ mock.Mock(side_effect=no_id_side_effect) self._store_si = {} def read_si(obj_type, uuid): return (True, [self.obj_to_dict(self._store_si[uuid[0]])]) def store_si_create(obj): config_db.ServiceInstanceSM._cassandra.object_read = \ mock.Mock(side_effect=read_si) obj.uuid = 'pool-si' self._store_si[obj.uuid] = obj def update_si_side_effect(obj): self._store_si[obj.uuid] = obj self.vnc_lib.service_instance_create = \ mock.Mock(side_effect=store_si_create) self.vnc_lib.service_instance_update = \ mock.Mock(side_effect=update_si_side_effect) self._db = {} def read_db(id): if id in self._db: return self._db[id] def put_db(id, data): self._db[id] = data def remove_db(id, data=None): if data is None: del self._db[id] return if self._db[id][data[0]]: del self._db[id][data[0]] self.cassandra.pool_driver_info_get = mock.Mock(side_effect=read_db) self.cassandra.pool_driver_info_insert = mock.Mock(side_effect=put_db) self.cassandra.pool_remove = mock.Mock(side_effect=remove_db) def validate_pool_update(obj_type, obj_uuid, ref_type, ref_uuid, ref_fq_name, operation): self.assertEqual(obj_type, "loadbalancer-pool") self.assertEqual(ref_type, "service-instance") pool = config_db.LoadbalancerPoolSM.get(obj_uuid) if operation is "ADD": si = config_db.ServiceInstanceSM.get(ref_uuid) self.assertIsNotNone(si) pool.service_instance = si.uuid si.loadbalancer_pool = pool.uuid self._si_pool[pool.uuid] = si.uuid self.assertEqual(si.uuid, "pool-si") elif operation is "DELETE": pool.service_instance = None del self._si_pool[pool.uuid] else: self.assertTrue(False) return self.vnc_lib.ref_update = mock.Mock(side_effect=validate_pool_update) conf_parser = argparse.ArgumentParser(add_help=False) config = ConfigParser.SafeConfigParser({'admin_token': None}) self._args, remaining_argv = conf_parser.parse_known_args() self._args.config_sections = config def sas_read_side_effect(obj_type, uuids): if obj_type == 'service_appliance_set': return (True, [{ 'fq_name': ['default-global-system-config', 'opencontrail'], 'service_appliance_driver': 'svc_monitor.services.loadbalancer\ .drivers.ha_proxy.driver.OpencontrailLoadbalancerDriver' }]) return (False, None) DBBase.init(self.svc, None, self.cassandra) config_db.ServiceApplianceSetSM._cassandra.object_read = \ mock.Mock(side_effect=sas_read_side_effect) self.lb_agent = loadbalancer_agent.LoadbalancerAgent( self.svc, self.vnc_lib, self.cassandra, self._args) self.svc.loadbalancer_agent = self.lb_agent sas = config_db.ServiceApplianceSetSM.get('opencontrail') self.assertEqual( sas.driver, "svc_monitor.services.loadbalancer.drivers.ha_proxy.driver.\ OpencontrailLoadbalancerDriver") sas.add() self.assertIsNotNone( self.lb_agent._loadbalancer_driver['opencontrail']) mock_st_obj = self.create_lb_st()
def setUp(self): self.vnc_lib = mock.Mock() self.cassandra = mock.Mock() self.logger = mock.Mock() self.svc = mock.Mock() self._db = {} def read_db(id): if id in self._db: return self._db[id] def put_db_config(id, data): if id not in self._db: self._db[id] = {} self._db[id]['config_info'] = data def put_db_driver(id, data): if id not in self._db: self._db[id] = {} self._db[id]['driver_info'] = data def remove_db(id, data=None): if data is None: del self._db[id] return if self._db[id]['driver_info'][data[0]]: del self._db[id]['driver_info'][data[0]] def list_pools(): ret_list = [] for each_entry_id, each_entry_data in self._db.iteritems() or []: config_info_obj_dict = each_entry_data['config_info'] driver_info_obj_dict = None if 'driver_info' in each_entry_data: driver_info_obj_dict = each_entry_data['driver_info'] ret_list.append((each_entry_id, config_info_obj_dict, driver_info_obj_dict)) return ret_list def list_loadbalancers(): res_list = [] return res_list def list_health_monitors(): res_list = [] return res_list self.cassandra.loadbalancer_list = mock.Mock(side_effect=list_loadbalancers) self.cassandra.pool_list = mock.Mock(side_effect=list_pools) self.cassandra.pool_remove = mock.Mock(side_effect=remove_db) self.cassandra.pool_driver_info_get = mock.Mock(side_effect=read_db) self.cassandra.pool_driver_info_insert = mock.Mock(side_effect=put_db_driver) self.cassandra.pool_config_insert = mock.Mock(side_effect=put_db_config) self.cassandra.health_monitor_list = mock.Mock(side_effect=list_health_monitors) mocked_gsc = mock.MagicMock() mocked_gsc.uuid = 'fake-gsc-uuid' self.vnc_lib.service_appliance_set_create.return_value = "opencontrail" self.vnc_lib.global_system_config_read.return_value = mocked_gsc def no_id_side_effect(fq_name): raise NoIdError("xxx") self.vnc_lib.service_appliance_set_read = mock.Mock(side_effect=no_id_side_effect) conf_parser = argparse.ArgumentParser(add_help=False) config = ConfigParser.SafeConfigParser({'admin_token': None}) self._args, remaining_argv = conf_parser.parse_known_args() self._args.config_sections = config def sas_read_side_effect(obj_type, uuids): if obj_type == 'service_appliance_set': return (True, [{ 'fq_name': ['default-global-system-config', 'opencontrail'], 'service_appliance_driver': 'svc_monitor.services.loadbalancer.drivers.ha_proxy.driver.OpencontrailLoadbalancerDriver' }]) return (False, None) self.cassandra.object_read = mock.Mock( side_effect=sas_read_side_effect) DBBase.init(self.svc, None, self.cassandra) self.lb_agent = loadbalancer_agent.LoadbalancerAgent(self.svc, self.vnc_lib, self.cassandra, self._args) self.svc.loadbalancer_agent = self.lb_agent sas = config_db.ServiceApplianceSetSM.get('opencontrail') self.assertEqual(sas.driver, "svc_monitor.services.loadbalancer.drivers.ha_proxy.driver.OpencontrailLoadbalancerDriver") sas.add() self.assertIsNotNone(self.lb_agent._loadbalancer_driver['opencontrail'])