コード例 #1
0
def create_nsr_from_nsd_id(nsd_id):
    nsr = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr()
    nsr.id = str(uuid.uuid4())
    nsr.name = "UTM-only"
    nsr.short_name = "UTM-only"
    nsr.description = "1 VNFs with 5 VLs"
    nsr.nsd_ref = nsd_id
    nsr.admin_status = "ENABLED"

    return nsr
コード例 #2
0
def create_nsr_from_nsd_id(nsd_id):
    nsr = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr()
    nsr.id = str(uuid.uuid4())
    nsr.name = "TG-2Vrouter-TS EPA"
    nsr.short_name = "TG-2Vrouter-TS EPA"
    nsr.description = "4 VNFs with Trafgen, 2 Vrouters and Trafsink EPA"
    nsr.nsd_ref = nsd_id
    nsr.admin_status = "ENABLED"

    return nsr
コード例 #3
0
    def test_null_arguments(self):
        """
        If None is passed to the substitutor for either the NSD or the NSR
        config, no exception should be raised.

        """
        nsd = ProjectNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd()
        nsr_config = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr()

        self.substitute_input_parameters(None, None)
        self.substitute_input_parameters(nsd, None)
        self.substitute_input_parameters(None, nsr_config)
コード例 #4
0
    def test_substitution(self):
        """
        Test that substitution of input parameters occurs as expected.

        """
        # Define the original NSD
        nsd = ProjectNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd()
        # nsd.name = "robert"
        # nsd.short_name = "bob"

        # Define which parameters may be modified
        nsd.input_parameter_xpath.extend([
                ProjectNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd_InputParameterXpath(
                    xpath="/nsd:nsd-catalog/nsd:nsd/nsd:name",
                    label="NSD Name",
                    ),
                ProjectNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd_InputParameterXpath(
                    xpath="/nsd:nsd-catalog/nsd:nsd/nsd:short-name",
                    label="NSD Short Name",
                    ),
                ])

        # Define the input parameters that are intended to be modified
        nsr_config = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr()
        nsr_config.input_parameter.extend([
            NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr_InputParameter(
                xpath="/nsd:nsd-catalog/nsd:nsd/nsd:name",
                value="robert",
                ),
            NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr_InputParameter(
                xpath="/nsd:nsd-catalog/nsd:nsd/nsd:short-name",
                value="bob",
                ),
            ])

        self.substitute_input_parameters(nsd, nsr_config)

        # Verify that both the 'name' and 'short-name' fields are correctly
        # replaced.
        self.assertEqual("robert", nsd.name)
        self.assertEqual("bob", nsd.short_name)
コード例 #5
0
    def test_illegal_input_parameter(self):
        """
        In the NSD there is a list of the parameters that are allowed to be
        sbustituted by input parameters. This test checks that when an input
        parameter is provided in the NSR config that is not in the NSD, it is
        not applied.

        """
        # Define the original NSD
        nsd = ProjectNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd()
        nsd.name = "robert"
        nsd.short_name = "bob"

        # Define which parameters may be modified
        nsd.input_parameter_xpath.append(
                ProjectNsdYang.YangData_RwProject_Project_NsdCatalog_Nsd_InputParameterXpath(
                    xpath="/nsd:nsd-catalog/nsd:nsd/nsd:name",
                    label="NSD Name",
                    )
                )

        # Define the input parameters that are intended to be modified
        nsr_config = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr()
        nsr_config.input_parameter.extend([
            NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr_InputParameter(
                xpath="/nsd:nsd-catalog/nsd:nsd/nsd:name",
                value="alice",
                ),
            NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr_InputParameter(
                xpath="/nsd:nsd-catalog/nsd:nsd/nsd:short-name",
                value="alice",
                ),
            ])

        self.substitute_input_parameters(nsd, nsr_config)

        # Verify that only the parameter in the input_parameter_xpath list is
        # modified after the input parameters have been applied.
        self.assertEqual("alice", nsd.name)
        self.assertEqual("bob", nsd.short_name)
コード例 #6
0
    def test_add_delete_ns(self):

        nsr1_uuid = "nsr1_uuid"  # str(uuid.uuid4())
        nsr2_uuid = "nsr2_uuid"  # str(uuid.uuid4())

        assert nsr1_uuid != nsr2_uuid

        yield from self.handler.register()
        yield from asyncio.sleep(.5, loop=self.loop)

        self.log.debug("Creating NSR")
        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_update(
                XPaths.nsr_config(nsr1_uuid),
                NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr(
                    id=nsr1_uuid, name="fu"),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(.5, loop=self.loop)

        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_update(
                XPaths.scaling_group_instance(nsr1_uuid, "group", 1234),
                NsrYang.
                YangData_RwProject_Project_NsInstanceConfig_Nsr_ScalingGroup_Instance(
                    id=1234),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(.5, loop=self.loop)

        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_delete(
                XPaths.scaling_group_instance(nsr1_uuid, "group", 1234),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(.5, loop=self.loop)

        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_create(
                XPaths.scaling_group_instance(nsr1_uuid, "group", 12345),
                NsrYang.
                YangData_RwProject_Project_NsInstanceConfig_Nsr_ScalingGroup_Instance(
                    id=12345),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(.5, loop=self.loop)

        group_ids = self.handler.get_scale_group_instances(nsr2_uuid, "group")
        self.log.debug("Got group ids in nsr2 after adding 12345 to nsr1: %s",
                       group_ids)
        group_ids = self.handler.get_scale_group_instances(nsr1_uuid, "group")
        self.log.debug("Got group ids in nsr1 after adding 12345 to nsr1: %s",
                       group_ids)
        assert group_ids == {12345}

        self.log.debug("\n\nADD A COMPLETELY DIFFERENT NSR\n")
        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_update(
                XPaths.nsr_config(nsr2_uuid),
                NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr(
                    id=nsr2_uuid, name="fu2"),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(.5, loop=self.loop)

        group_ids = self.handler.get_scale_group_instances(nsr2_uuid, "group")
        self.log.debug("Got group ids in nsr2 after adding new nsr: %s",
                       group_ids)
        group_ids = self.handler.get_scale_group_instances(nsr1_uuid, "group")
        self.log.debug("Got group ids in nsr1 after adding new nsr: %s",
                       group_ids)
        assert group_ids == {12345}

        self.log.debug("\n\nDELETE A COMPLETELY DIFFERENT NSR\n")
        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_delete(
                XPaths.nsr_config(nsr2_uuid),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(.5, loop=self.loop)

        group_ids = self.handler.get_scale_group_instances(nsr2_uuid, "group")
        self.log.debug("Got group ids in nsr2 after deleting nsr2: %s",
                       group_ids)
        group_ids = self.handler.get_scale_group_instances(nsr1_uuid, "group")
        self.log.debug("Got group ids in nsr1 after deleting nsr2: %s",
                       group_ids)
        assert group_ids == {12345}

        with self.dts_c.transaction() as xact:
            block = xact.block_create()
            block.add_query_delete(
                XPaths.scaling_group_instance(nsr1_uuid, "group", 12345),
                flags=rwdts.XactFlag.ADVISE | rwdts.XactFlag.TRACE,
            )
            yield from block.execute(now=True)

        yield from asyncio.sleep(2, loop=self.loop)