def setUp(self): global mock_enumerator, event_loop self.sys_path_save = sys.path self.cwd_save = os.getcwd() sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base', 'tests', 'steps')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir=None, service_xprotos=[]) os.chdir(os.path.join(test_path, '..')) # config references tests/model-deps import event_loop reload(event_loop) import backend reload(backend) from mock_modelaccessor import mock_enumerator from modelaccessor import model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v b = backend.Backend() steps_dir = Config.get("steps_dir") self.steps = b.load_sync_step_modules(steps_dir) self.synchronizer = event_loop.XOSObserver(self.steps)
def setUp(self): self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "../test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("hippie-oss", "hippie-oss.xproto"), get_models_fn("olt-service", "volt.xproto"), get_models_fn("rcord", "rcord.xproto") ]) import synchronizers.new_base.modelaccessor from model_policy_hippieossserviceinstance import OSSServiceInstancePolicy, model_accessor from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VSGServiceInstance may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() self.policy = OSSServiceInstancePolicy() self.si = Mock() self.si.owner = Mock()
def setUp(self): self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, "synchronizers", "new_base")) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "test_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import ( build_mock_modelaccessor, ) # FIXME this is to get jenkins to pass the tests, somehow it is running tests in a different order # and apparently it is not overriding the generated model accessor build_mock_modelaccessor(xos_dir, services_dir, []) import synchronizers.new_base.modelaccessor # import all class names to globals for ( k, v, ) in (synchronizers.new_base.modelaccessor.model_accessor. all_model_classes.items()): globals()[k] = v self.log = Mock()
def setUp(self): global XOSKafkaThread, Config, log self.sys_path_save = sys.path self.cwd_save = os.getcwd() sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, "synchronizers", "new_base")) sys.path.append( os.path.join(xos_dir, "synchronizers", "new_base", "tests", "event_steps") ) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, "synchronizer-config-schema.yaml") from synchronizers.new_base.mock_modelaccessor_build import ( build_mock_modelaccessor, ) build_mock_modelaccessor(xos_dir, services_dir=None, service_xprotos=[]) os.chdir(os.path.join(test_path, "..")) # config references tests/model-deps from event_engine import XOSKafkaThread, XOSEventEngine self.event_steps_dir = Config.get("event_steps_dir") self.event_engine = XOSEventEngine(log)
def setUp(self): global VEGTenantPolicy, LeastLoadedNodeScheduler, MockObjectList self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("vEG", "veg.xproto"), get_models_fn("addressmanager", "addressmanager.xproto") ]) import synchronizers.new_base.modelaccessor import synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import model_policy_vegtenant from model_policy_vegtenant import VEGTenantPolicy, model_accessor from synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import LeastLoadedNodeScheduler from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VEGTenant may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() # attic functions that are not present in the mock model accessor VEGTenant.volt = PropertyMock(return_value=None) AddressManagerServiceInstance.set_attribute = Mock() self.policy = VEGTenantPolicy() self.tenant = VEGTenant() self.user = User(email="*****@*****.**") self.tenant = VEGTenant(creator=self.user, id=1) self.flavor = Flavor(name="m1.small") self.npt_ctag = NetworkParameterType(name="c_tag", id=1) self.npt_stag = NetworkParameterType(name="s_tag", id=2) self.npt_neutron_port_name = NetworkParameterType( name="neutron_port_name", id=3) self.node = Node(hostname="my.node.com") self.slice = Slice(name="mysite_test1", default_flavor=self.flavor, default_isolation="vm") self.priv_template = NetworkTemplate(name="access_network", visibility="private") self.priv_network = Network(name="mysite_test1_private", template=self.priv_template) self.image = Image(name="trusty-server-multi-nic") self.deployment = Deployment(name="testdeployment") Tag.objects.item_list = []
def setUp(self): global DeferredException self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "../test_vsg_hw_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [get_models_fn("vsg-hw", "vsg-hw.xproto")]) import synchronizers.new_base.modelaccessor from sync_vsg_hw_service_instance import SyncVSGHWServiceInstance, model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v self.sync_step = SyncVSGHWServiceInstance # mock onos-fabric onos_fabric = Mock() onos_fabric.name = "onos-fabric" onos_fabric.rest_hostname = "onos-fabric" onos_fabric.rest_port = "8181" onos_fabric.rest_username = "******" onos_fabric.rest_password = "******" # mock generic service svc = Mock() svc.name = "onos-fabric" svc.leaf_model = onos_fabric # mock vsg-hw service self.vsg_service = Mock() self.vsg_service.provider_services = [svc] # create a mock vsg-hw service instance o = Mock() o.id = 1 o.owner = self.vsg_service o.tologdict.return_value = {} si = Mock() si.get_westbound_service_instance_properties = mock_get_westbound_service_instance_properties self.o = o self.si = si
def setUp(self): global DeferredException self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, "synchronizers", "new_base")) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "../test_fabric_crossconnect_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import ( build_mock_modelaccessor, ) build_mock_modelaccessor( xos_dir, services_dir, [ get_models_fn("fabric-crossconnect", "fabric-crossconnect.xproto") ], ) from synchronizers.new_base.modelaccessor import model_accessor from sync_fabric_crossconnect_service_instance import ( SyncFabricCrossconnectServiceInstance, DeferredException, ) # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v self.sync_step = SyncFabricCrossconnectServiceInstance self.sync_step.log = Mock() # mock onos-fabric self.onos_fabric = Service( name="onos-fabric", rest_hostname="onos-fabric", rest_port="8181", rest_username="******", rest_password="******", ) self.service = FabricCrossconnectService( name="fcservice", provider_services=[self.onos_fabric])
def setUp(self): self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "../test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("hippie-oss", "hippie-oss.xproto"), get_models_fn("olt-service", "volt.xproto"), get_models_fn("rcord", "rcord.xproto") ]) import synchronizers.new_base.modelaccessor from model_policy_hippieossservice import OSSServicePolicy, model_accessor from mock_modelaccessor import MockObjectList self.MockObjectList = MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VSGServiceInstance may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() self.policy = OSSServicePolicy() self.service = HippieOSSService( id=5367, whitelist_entries=[], ) # needs to be enabled self.si1 = HippieOSSServiceInstance(valid="awaiting", serial_number="BRCM111") # needs to be enabled self.si2 = HippieOSSServiceInstance(valid="invalid", serial_number="BRCM222") # remains disabled self.si3 = HippieOSSServiceInstance(valid="invalid", serial_number="BRCM333") # needs to be disabled self.si4 = HippieOSSServiceInstance(valid="valid", serial_number="BRCM444")
def setUp(self): global VSGServiceInstancePolicy, LeastLoadedNodeScheduler, MockObjectList self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [get_models_fn("vsg", "vsg.xproto"), get_models_fn("addressmanager", "addressmanager.xproto")]) import synchronizers.new_base.modelaccessor import synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import model_policy_vsgserviceinstance from model_policy_vsgserviceinstance import VSGServiceInstancePolicy, model_accessor from synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import LeastLoadedNodeScheduler from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VSGServiceInstance may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() # attic functions that are not present in the mock model accessor VSGServiceInstance.volt = PropertyMock(return_value = None) AddressManagerServiceInstance.set_attribute = Mock() self.policy = VSGServiceInstancePolicy() self.tenant = VSGServiceInstance() self.user = User(email="*****@*****.**") self.tenant = VSGServiceInstance(id=1) self.flavor = Flavor(name="m1.small") self.npt_ctag = NetworkParameterType(name="c_tag", id=1) self.npt_stag = NetworkParameterType(name="s_tag", id=2) self.npt_neutron_port_name = NetworkParameterType(name="neutron_port_name", id=3) self.node = Node(hostname="my.node.com") self.slice = Slice(name="mysite_test1", default_flavor=self.flavor, default_isolation="vm") self.priv_template = NetworkTemplate(name="access_network", visibility="private") self.priv_network = Network(name="mysite_test1_private", template=self.priv_template) self.image = Image(name="trusty-server-multi-nic") self.deployment = Deployment(name="testdeployment") Tag.objects.item_list = []
def setUp(self): global mock_enumerator, event_loop self.sys_path_save = sys.path self.cwd_save = os.getcwd() sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, "synchronizers", "new_base")) sys.path.append( os.path.join(xos_dir, "synchronizers", "new_base", "tests", "steps")) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, "synchronizer-config-schema.yaml") from synchronizers.new_base.mock_modelaccessor_build import ( build_mock_modelaccessor, ) build_mock_modelaccessor(xos_dir, services_dir=None, service_xprotos=[]) os.chdir(os.path.join(test_path, "..")) # config references tests/model-deps import event_loop reload(event_loop) import backend reload(backend) from mock_modelaccessor import mock_enumerator from modelaccessor import model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # self.policy = TenantWithContainerPolicy() # self.user = User(email="*****@*****.**") # self.tenant = Tenant(creator=self.user) # self.flavor = Flavor(name="m1.small") # model_policy_tenantwithcontainer.Instance = Instance # model_policy_tenantwithcontainer.Flavor = Flavor b = backend.Backend() steps_dir = Config.get("steps_dir") self.steps = b.load_sync_step_modules(steps_dir) self.synchronizer = event_loop.XOSObserver(self.steps)
def setUp(self): self.sys_path_save = sys.path self.cwd_save = os.getcwd() sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, "synchronizers", "new_base")) sys.path.append( os.path.join(xos_dir, "synchronizers", "new_base", "tests", "steps")) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, "synchronizer-config-schema.yaml") from synchronizers.new_base.mock_modelaccessor_build import ( build_mock_modelaccessor, ) build_mock_modelaccessor(xos_dir, services_dir=None, service_xprotos=[]) os.chdir(os.path.join(test_path, "..")) # config references tests/model-deps import event_loop reload(event_loop) import backend reload(backend) from modelaccessor import model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v b = backend.Backend() steps_dir = Config.get("steps_dir") self.steps = b.load_sync_step_modules(steps_dir) self.synchronizer = event_loop.XOSObserver(self.steps) try: os.remove("/tmp/sync_ports") except OSError: pass try: os.remove("/tmp/delete_ports") except OSError: pass
def setUp(self): global TenantWithContainerPolicy, LeastLoadedNodeScheduler, MockObjectList self.sys_path_save = sys.path self.cwd_save = os.getcwd() sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, "synchronizers", "new_base")) sys.path.append( os.path.join(xos_dir, "synchronizers", "new_base", "model_policies")) config = basic_conf = os.path.abspath( os.path.dirname(os.path.realpath(__file__)) + "/test_config.yaml") Config.clear() # in case left unclean by a previous test case Config.init(config, "synchronizer-config-schema.yaml") from synchronizers.new_base.mock_modelaccessor_build import ( build_mock_modelaccessor, ) build_mock_modelaccessor(xos_dir, services_dir=None, service_xprotos=[]) import model_policy_tenantwithcontainer from model_policy_tenantwithcontainer import ( TenantWithContainerPolicy, LeastLoadedNodeScheduler, ) from mock_modelaccessor import MockObjectList # import all class names to globals for ( k, v, ) in model_policy_tenantwithcontainer.model_accessor.all_model_classes.items( ): globals()[k] = v # TODO: Mock_model_accessor lacks save or delete methods # Instance.save = mock.Mock # Instance.delete = mock.Mock # TenantWithContainer.save = mock.Mock self.policy = TenantWithContainerPolicy() self.user = User(email="*****@*****.**") self.tenant = TenantWithContainer(creator=self.user) self.flavor = Flavor(name="m1.small")
def setUp(self): global DeferredException self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "../test_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [get_models_fn("fabric", "fabric.xproto")]) import synchronizers.new_base.modelaccessor from sync_fabric_switch import SyncFabricSwitch, model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v self.sync_step = SyncFabricSwitch self.sync_step.log = Mock() # mock onos-fabric onos_fabric = Mock() onos_fabric.name = "onos-fabric" onos_fabric.rest_hostname = "onos-fabric" onos_fabric.rest_port = "8181" onos_fabric.rest_username = "******" onos_fabric.rest_password = "******" onos_fabric_base = Mock() onos_fabric_base.leaf_model = onos_fabric self.fabric = Mock() self.fabric.name = "fabric" self.fabric.provider_services = [onos_fabric_base] # create a mock Switch instance self.o = Mock() self.o.name = "MockSwitch" self.o.ofId = "of:1234"
def setUp(self): self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "../test_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") from multistructlog import create_logger log = create_logger(Config().get('logging')) # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor # build_mock_modelaccessor(xos_dir, services_dir, [get_models_fn("olt-service", "volt.xproto")]) build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("hippie-oss", "hippie-oss.xproto"), get_models_fn("olt-service", "volt.xproto"), get_models_fn("rcord", "rcord.xproto") ]) import synchronizers.new_base.modelaccessor from dhcp_event import SubscriberDhcpEventStep, model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v self.log = log self.event_step = SubscriberDhcpEventStep(self.log) self.event = Mock() self.volt = Mock() self.volt.name = "vOLT" self.volt.leaf_model = Mock() self.subscriber = RCORDSubscriber() self.subscriber.onu_device = "BRCM1234" self.subscriber.save = Mock() self.mac_address = "aa:bb:cc:dd:ee" self.ip_address = "192.168.3.5"
def setUp(self): self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "../test_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("hippie-oss", "hippie-oss.xproto"), get_models_fn("olt-service", "volt.xproto"), get_models_fn("rcord", "rcord.xproto") ]) import synchronizers.new_base.modelaccessor from sync_hippie_oss_service_instance import SyncOSSServiceInstance, model_accessor # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v self.sync_step = SyncOSSServiceInstance self.oss = Mock() self.oss.name = "oss" self.oss.id = 5367 # create a mock HippieOssServiceInstance instance self.o = Mock() self.o.serial_number = "BRCM1234" self.o.of_dpid = "of:109299321" self.o.owner.leaf_model = self.oss self.o.tologdict.return_value = {}
def setUp(self): self.sys_path_save = sys.path self.cwd_save = os.getcwd() sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) sys.path.append( os.path.join(xos_dir, 'synchronizers', 'new_base', 'tests', 'steps')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir=None, service_xprotos=[]) os.chdir(os.path.join(test_path, '..')) # config references tests/model-deps import event_loop reload(event_loop) import backend reload(backend) # self.policy = TenantWithContainerPolicy() # self.user = User(email="*****@*****.**") # self.tenant = Tenant(creator=self.user) # self.flavor = Flavor(name="m1.small") # model_policy_tenantwithcontainer.Instance = Instance # model_policy_tenantwithcontainer.Flavor = Flavor b = backend.Backend() steps_dir = Config.get("steps_dir") self.steps = b.load_sync_step_modules(steps_dir) self.synchronizer = event_loop.XOSObserver(self.steps)
def setUp(self): global SyncVSGServiceInstance, LeastLoadedNodeScheduler, MockObjectList self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("vsg", "vsg.xproto"), get_models_fn("addressmanager", "addressmanager.xproto") ]) import synchronizers.new_base.modelaccessor import synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import sync_vsgserviceinstance from sync_vsgserviceinstance import SyncVSGServiceInstance, model_accessor from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VSGServiceInstance may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() # attic functions that are not present in the mock model accessor AddressManagerServiceInstance.set_attribute = Mock() self.syncstep = SyncVSGServiceInstance() # set up an object hierarchy that represents a Service and ServiceInstance self.user = User(email="*****@*****.**") self.service = VSGService(name="the_vsg_service", id=1, docker_image_name="reg/vsg_docker", docker_insecure_registry=True, dns_servers="dnsone,dnstwo", url_filter_kind=None, private_key_fn=os.path.join( test_path, "test_private_key")) self.subscriber = MagicMock(firewall_rules="rule1", firewall_enable=True, url_filter_enable=True, url_filter_level="R", cdn_enable=True, uplink_speed=1234, downlink_speed=5678, enable_uverse=False, status="suspended", sync_attributes=[ "firewall_rules", "firewall_enable", "url_filter_enable", "url_filter_level", "cdn_enable", "uplink_speed", "downlink_speed", "enable_uverse", "status" ]) self.volt = MagicMock(s_tag=111, c_tag=222, subscriber=self.subscriber) self.tenant = VSGServiceInstance(id=401, volt=self.volt, owner=self.service, wan_container_ip="10.7.1.3", wan_container_netbits="24", wan_container_mac="02:42:0a:07:01:03", wan_container_gateway_ip="10.7.1.1", wan_vm_ip="10.7.1.2", wan_vm_mac="02:42:0a:07:01:02", sync_attributes=[ "wan_container_ip", "wan_container_netbits", "wan_container_mac", "wan_container_gateway_ip", "wan_vm_ip", "wan_vm_mac" ]) self.flavor = Flavor(name="m1.small") self.npt_ctag = NetworkParameterType(name="c_tag", id=1) self.npt_stag = NetworkParameterType(name="s_tag", id=2) self.npt_neutron_port_name = NetworkParameterType( name="neutron_port_name", id=501) self.priv_template = NetworkTemplate(name="access_network", visibility="private") self.priv_network = Network(name="mysite_test1_private", template=self.priv_template) self.image = Image(name="trusty-server-multi-nic") self.deployment = Deployment(name="testdeployment") self.user = User(email="smbaker", id=701) self.controller = Controller(id=101) self.node = Node(name="testnode") self.slice = Slice(name="mysite_test1", default_flavor=self.flavor, default_isolation="vm", service=self.service, id=301) self.instance = Instance(slice=self.slice, instance_name="testinstance1_instance_name", instance_id="testinstance1_instance_id", name="testinstance1_name", node=self.node, creator=self.user, controller=self.controller) self.tenant.instance = self.instance self.instance.get_ssh_ip = Mock(return_value="1.2.3.4") self.controllerslice = ControllerSlice( slice_id=self.slice.id, controller_id=self.controller.id, id=201) self.controlleruser = ControllerUser(user_id=self.user.id, controller_id=self.controller.id, id=601)
def setUp(self): global SyncvNaaSEline, MockObjectList self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [get_models_fn("vnaas", "vnaas.xproto")]) import synchronizers.new_base.modelaccessor import synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import sync_vnaaseline from sync_vnaaseline import SyncvNaaSEline, model_accessor from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VSGServiceInstance may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() self.syncstep = SyncvNaaSEline() self.onosModel = OnosModel(name=ONOS_NAME, onos_ip=ONOS_IP, onos_port=ONOS_PORT, onos_username=ONOS_USERNAME, onos_password=ONOS_PASSWORD, onos_type=ONOS_TYPE) self.bandwidthProfile = BandwidthProfile(cbs=BWP_GOLD_CBS, ebs=BWP_GOLD_EBS, cir=BWP_GOLD_CIR, eir=BWP_GOLD_EIR, name=BWP_GOLD_NAME) self.connect_point_1 = UserNetworkInterface( tenant=CONNECT_POINT_1_TENANT, name=CONNECT_POINT_1_NAME, latlng=CONNECT_POINT_1_LATLNG, cpe_id=CONNECT_POINT_1_CPE_ID) self.connect_point_2 = UserNetworkInterface( tenant=CONNECT_POINT_2_TENANT, name=CONNECT_POINT_2_NAME, latlng=CONNECT_POINT_2_LATLNG, cpe_id=CONNECT_POINT_2_CPE_ID) self.eline = ELine(name=ELINE_NAME, connect_point_1=self.connect_point_1, connect_point_2=self.connect_point_2, vlanids=ELINE_VLANIDS, cord_site_name=ONOS_NAME, bwp=self.bandwidthProfile)
def setUp(self): global SyncVSGServiceInstance, LeastLoadedNodeScheduler, MockObjectList self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) config = os.path.join(test_path, "test_config.yaml") from xosconfig import Config Config.clear() Config.init(config, 'synchronizer-config-schema.yaml') from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [get_models_fn("vsg", "vsg.xproto"), get_models_fn("addressmanager", "addressmanager.xproto")]) import synchronizers.new_base.modelaccessor import synchronizers.new_base.model_policies.model_policy_tenantwithcontainer import sync_vsgserviceinstance from sync_vsgserviceinstance import SyncVSGServiceInstance, model_accessor from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v # Some of the functions we call have side-effects. For example, creating a VSGServiceInstance may lead to creation of # tags. Ideally, this wouldn't happen, but it does. So make sure we reset the world. model_accessor.reset_all_object_stores() # attic functions that are not present in the mock model accessor AddressManagerServiceInstance.set_attribute = Mock() self.syncstep = SyncVSGServiceInstance() # set up an object hierarchy that represents a Service and ServiceInstance self.user = User(email="*****@*****.**") self.service = VSGService(name="the_vsg_service", id=1, docker_image_name="reg/vsg_docker", docker_insecure_registry=True, dns_servers="dnsone,dnstwo", url_filter_kind=None, private_key_fn=os.path.join(test_path, "test_private_key")) self.subscriber = MagicMock(firewall_rules = "rule1", firewall_enable = True, url_filter_enable = True, url_filter_level="R", cdn_enable=True, uplink_speed=1234, downlink_speed=5678, enable_uverse=False, status="suspended", sync_attributes=["firewall_rules", "firewall_enable", "url_filter_enable", "url_filter_level", "cdn_enable", "uplink_speed", "downlink_speed", "enable_uverse", "status"]) self.volt = MagicMock(s_tag=111, c_tag=222, subscriber=self.subscriber) self.tenant = VSGServiceInstance(id=401, volt=self.volt, owner=self.service, wan_container_ip="10.7.1.3", wan_container_netbits="24", wan_container_mac="02:42:0a:07:01:03", wan_container_gateway_ip="10.7.1.1", wan_vm_ip="10.7.1.2", wan_vm_mac="02:42:0a:07:01:02", sync_attributes = ["wan_container_ip", "wan_container_netbits", "wan_container_mac", "wan_container_gateway_ip", "wan_vm_ip", "wan_vm_mac"]) self.flavor = Flavor(name="m1.small") self.npt_ctag = NetworkParameterType(name="c_tag", id=1) self.npt_stag = NetworkParameterType(name="s_tag", id=2) self.npt_neutron_port_name = NetworkParameterType(name="neutron_port_name", id=501) self.priv_template = NetworkTemplate(name="access_network", visibility="private") self.priv_network = Network(name="mysite_test1_private", template=self.priv_template) self.image = Image(name="trusty-server-multi-nic") self.deployment = Deployment(name="testdeployment") self.user = User(email="smbaker", id=701) self.controller = Controller(id=101) self.node = Node(name="testnode") self.slice = Slice(name="mysite_test1", default_flavor=self.flavor, default_isolation="vm", service=self.service, id=301) self.instance = Instance(slice=self.slice, instance_name="testinstance1_instance_name", instance_id="testinstance1_instance_id", name="testinstance1_name", node=self.node, creator=self.user, controller=self.controller) self.tenant.instance = self.instance self.instance.get_ssh_ip = Mock(return_value="1.2.3.4") self.controllerslice = ControllerSlice(slice_id=self.slice.id, controller_id=self.controller.id, id=201) self.controlleruser = ControllerUser(user_id=self.user.id, controller_id=self.controller.id, id=601)
def setUp(self): global DeferredException self.sys_path_save = sys.path sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, "../test_config.yaml") Config.clear() Config.init(config, "synchronizer-config-schema.yaml") # END Setting up the config module from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, [ get_models_fn("fabric", "fabric.xproto"), get_models_fn("onos-service", "onos.xproto"), ]) import synchronizers.new_base.mock_modelaccessor reload(synchronizers.new_base.mock_modelaccessor) # in case nose2 loaded it in a previous test import synchronizers.new_base.modelaccessor reload(synchronizers.new_base.modelaccessor) # in case nose2 loaded it in a previous test from kubernetes_event import model_accessor from mock_modelaccessor import MockObjectList from kubernetes_event import KubernetesPodDetailsEventStep # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals()[k] = v self.event_step = KubernetesPodDetailsEventStep self.onos = ONOSService(name="myonos", id=1111, rest_hostname = "onos-url", rest_port = "8181", rest_username = "******", rest_password = "******", backend_code=1, backend_status="succeeded") self.fabric_service = FabricService(name="fabric", id=1112, backend_code=1, backend_status="succeeded", provider_services=[self.onos]) self.switch = Switch(name="switch1", backend_code=1, backend_status="succeeded") self.port1 = SwitchPort(name="switch1port1", switch=self.switch, backend_code=1, backend_status="succeeded") self.port2 = SwitchPort(name="switch1port2", switch=self.switch, backend_code=1, backend_status="succeeded") self.switch.ports = MockObjectList([self.port1, self.port2]) self.log = Mock()
def setup_sync_unit_test(test_path, globals_dict, models, config_fn="test_config.yaml"): """ Perform the common steps associated with setting up a synchronizer unit test. 1) Add synchronizers/new_base to sys.path 2) Import xosconfig.Config and set it up to test_config.yaml in the current dir 3) Build the mock modelaccessor and import it 4) Import all model accessor classes into global space Arguments: test_path - path to the test case that is being run globals_dict - a dictionary to add global models to models - a list of pairs (service_name, xproto_name, config_fn - filename of config file) Returns: Dictionary containing the following: sys_path_save: the original sys.path model_accessor: model accessor class Config: the Config object xos_dir: xos directory services_dir: services directory """ def get_models_fn(services_dir, service_name, xproto_name): name = os.path.join(service_name, "xos", xproto_name) if os.path.exists(os.path.join(services_dir, name)): return name else: name = os.path.join(service_name, "xos", "synchronizer", "models", xproto_name) if os.path.exists(os.path.join(services_dir, name)): return name raise Exception("Unable to find service=%s xproto=%s" % (service_name, xproto_name)) sys_path_save = sys.path xos_dir = os.path.join(test_path, "../../..") if not os.path.exists(os.path.join(test_path, "new_base")): xos_dir = os.path.join(test_path, "../../../../../../orchestration/xos/xos") services_dir = os.path.join(xos_dir, "../../xos_services") sys.path.append(xos_dir) sys.path.append(os.path.join(xos_dir, 'synchronizers', 'new_base')) # Setting up the config module from xosconfig import Config config = os.path.join(test_path, config_fn) Config.clear() Config.init(config, "synchronizer-config-schema.yaml") xprotos = [] for (service_name, xproto_name) in models: xprotos.append(get_models_fn(services_dir, service_name, xproto_name)) from synchronizers.new_base.mock_modelaccessor_build import build_mock_modelaccessor build_mock_modelaccessor(xos_dir, services_dir, xprotos) import synchronizers.new_base.modelaccessor from synchronizers.new_base.modelaccessor import model_accessor from mock_modelaccessor import MockObjectList # import all class names to globals for (k, v) in model_accessor.all_model_classes.items(): globals_dict[k] = v return { "sys_path_save": sys_path_save, "model_accessor": model_accessor, "Config": Config, "xos_dir": xos_dir, "services_dir": services_dir, "MockObjectList": MockObjectList }