X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_pla%2Ftest%2Ftest_nsPlacementDataFactory.py;h=fe3c8dae6c2504c41258edfe8aec89d27962b4df;hb=refs%2Ftags%2Fv9.1.1;hp=c53ad573bda014a6a83f9a076e1e6c405a02fc9c;hpb=2b0e2d72595a5e25bd8f785138416d12829fbd64;p=osm%2FPLA.git diff --git a/osm_pla/test/test_nsPlacementDataFactory.py b/osm_pla/test/test_nsPlacementDataFactory.py index c53ad57..fe3c8da 100644 --- a/osm_pla/test/test_nsPlacementDataFactory.py +++ b/osm_pla/test/test_nsPlacementDataFactory.py @@ -169,7 +169,7 @@ class TestNsPlacementDataFactory(TestCase): FIXME temporary, we will need more control over vim_urls and _id for test purpose - make a generator :return: vim_url and _id as dict, i.e. extract these from vim_accounts data """ - return {_['vim_url']: _['_id'] for _ in vim_accounts} + return {_['name']: _['_id'] for _ in vim_accounts} def _adjust_path(self, file): """In case we are not running from test directory, @@ -211,13 +211,13 @@ class TestNsPlacementDataFactory(TestCase): price_list_file = "vnf_price_list.yaml" with open(str(Path(self._adjust_path(price_list_file)))) as pl_fd: price_list_data = yaml.safe_load_all(pl_fd) - return {i['vnfd']: {i1['vim_url']: i1['price'] for i1 in i['prices']} for i in next(price_list_data)} + return {i['vnfd']: {i1['vim_name']: i1['price'] for i1 in i['prices']} for i in next(price_list_data)} def _produce_ut_vnf_test_price_list(self, price_list): price_list_file = price_list with open(str(Path(self._adjust_path(price_list_file)))) as pl_fd: price_list_data = yaml.safe_load_all(pl_fd) - return {i['vnfd']: {i1['vim_url']: i1['price'] for i1 in i['prices']} for i in next(price_list_data)} + return {i['vnfd']: {i1['vim_name']: i1['price'] for i1 in i['prices']} for i in next(price_list_data)} def test__produce_trp_link_characteristics_link_latency_with_more_vims(self): """ @@ -229,7 +229,7 @@ class TestNsPlacementDataFactory(TestCase): self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts_more_vims), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_latencies = nspdf._produce_trp_link_characteristics_data('pil_latency') content_produced = [i for row in pil_latencies for i in row] @@ -245,7 +245,7 @@ class TestNsPlacementDataFactory(TestCase): self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts_fewer_vims), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_latencies = nspdf._produce_trp_link_characteristics_data('pil_latency') content_produced = [i for row in pil_latencies for i in row] @@ -279,7 +279,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_latencies = nspdf._produce_trp_link_characteristics_data('pil_latency') content_produced = [i for row in pil_latencies for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), 'trp_link_latency incorrect') @@ -293,7 +293,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_jitter = nspdf._produce_trp_link_characteristics_data('pil_jitter') content_produced = [i for row in pil_jitter for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), 'trp_link_jitter incorrect') @@ -306,7 +306,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(self.vim_accounts_fewer_vims), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_latencies = nspdf._produce_trp_link_characteristics_data('pil_jitter') content_produced = [i for row in pil_latencies for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), 'trp_link_jitter incorrect') @@ -320,7 +320,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(self.vim_accounts_more_vims), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_latencies = nspdf._produce_trp_link_characteristics_data('pil_jitter') content_produced = [i for row in pil_latencies for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), 'trp_link_jitter incorrect') @@ -333,7 +333,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_prices = nspdf._produce_trp_link_characteristics_data('pil_price') content_produced = [i for row in pil_prices for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), 'invalid trp link prices') @@ -346,7 +346,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(self.vim_accounts_fewer_vims), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest1.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest1_keys.yaml'), pinning=None) pil_prices = nspdf._produce_trp_link_characteristics_data('pil_price') content_produced = [i for row in pil_prices for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), 'invalid trp link prices') @@ -356,7 +356,7 @@ class TestNsPlacementDataFactory(TestCase): nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=None, - pil_info=self._populate_pil_info('pil_unittest2.yaml'), pinning=None) + pil_info=self._populate_pil_info('pil_unittest2_keys.yaml'), pinning=None) pil_jitter = nspdf._produce_trp_link_characteristics_data('pil_jitter') content_produced = [i for row in pil_jitter for i in row] self.assertEqual(Counter(content_expected), Counter(content_produced), @@ -367,7 +367,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 120}] nsd = self._get_ut_nsd_from_file('nsd_unittest2.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -406,7 +406,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 90, 'jitter': 30}] nsd = self._get_ut_nsd_from_file('nsd_unittest_no_vld_constraints.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -425,7 +425,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 90, 'jitter': 30}] nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -444,7 +444,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 121, 'jitter': 22}] nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -469,7 +469,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three']}] nsd = self._get_ut_nsd_from_file('nsd_unittest_no_vld_constraints.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -488,7 +488,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 141, 'jitter': 42}] nsd = self._get_ut_nsd_from_file('nsd_unittest_no_vld_constraints.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -513,7 +513,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 151}] nsd = self._get_ut_nsd_from_file('nsd_unittest_no_vld_constraints.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -538,7 +538,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three']}] nsd = self._get_ut_nsd_from_file('nsd_unittest_no_vld_constraints.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -560,7 +560,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['2', '3'], 'latency': 20, 'jitter': 10}, ] nsd = self._get_ut_nsd_from_file('test_five_nsd.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -573,7 +573,19 @@ class TestNsPlacementDataFactory(TestCase): vld_desc_expected = [] nsd = self._get_ut_nsd_from_file('nsd_unittest4.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] + nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), + self._produce_ut_vnf_price_list(), + nsd=nsd, + pil_info=None, pinning=None, + order_constraints=None) + + self.assertEqual(vld_desc_expected, nspdf._produce_vld_desc(), "vld_desc_incorrect") + + def test__produce_vld_desc_slice_nsd(self): + vld_desc_expected = [] + nsd = self._get_ut_nsd_from_file('slice_hackfest_middle_nsd.yaml') + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -591,7 +603,7 @@ class TestNsPlacementDataFactory(TestCase): {'cp_refs': ['two', 'three'], 'latency': 90, 'jitter': 30}] nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -609,7 +621,7 @@ class TestNsPlacementDataFactory(TestCase): - fault case scenarios with non-existing vims, non-existing vnfds """ nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -630,7 +642,7 @@ class TestNsPlacementDataFactory(TestCase): def test__produce_ns_desc_with_more_vims(self): nsd = self._get_ut_nsd_from_file('nsd_unittest1.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(self.vim_accounts_more_vims), self._produce_ut_vnf_test_price_list('vnf_price_list_more_vims.yaml'), nsd=nsd, @@ -640,7 +652,7 @@ class TestNsPlacementDataFactory(TestCase): ns_desc = nspdf._produce_ns_desc() # check that all expected member-vnf-index are present vnfs = [e['vnf_id'] for e in ns_desc] - self.assertEqual(Counter([1, 3, 2]), Counter(vnfs), 'vnf_id invalid') + self.assertEqual(Counter({'1': 1, '2': 1, '3': 1}), Counter(vnfs), 'vnf_id invalid') expected_keys = ['vnf_id', 'vnf_price_per_vim'] for e in ns_desc: @@ -651,7 +663,7 @@ class TestNsPlacementDataFactory(TestCase): def test__produce_ns_desc_with_fewer_vims(self): nsd = self._get_ut_nsd_from_file('nsd_unittest1.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(self.vim_accounts_fewer_vims), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -661,7 +673,7 @@ class TestNsPlacementDataFactory(TestCase): ns_desc = nspdf._produce_ns_desc() # check that all expected member-vnf-index are present vnfs = [e['vnf_id'] for e in ns_desc] - self.assertEqual(Counter([1, 3, 2]), Counter(vnfs), 'vnf_id invalid') + self.assertEqual(Counter({'1': 1, '2': 1, '3': 1}), Counter(vnfs), 'vnf_id invalid') expected_keys = ['vnf_id', 'vnf_price_per_vim'] for e in ns_desc: @@ -672,7 +684,7 @@ class TestNsPlacementDataFactory(TestCase): def test__produce_ns_desc_w_pinning(self): nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] pinning = [{'member-vnf-index': 'two', 'vimAccountId': '331ffdec-44a8-4707-94a1-af7a292d9735'}] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), @@ -708,7 +720,7 @@ class TestNsPlacementDataFactory(TestCase): 'vimeda92f47-29b9-4007-9709-c1833dbfbe31']] nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd, @@ -743,7 +755,7 @@ class TestNsPlacementDataFactory(TestCase): 'vimeda92f47-29b9-4007-9709-c1833dbfbe31']] nsd = self._get_ut_nsd_from_file('nsd_unittest3.yaml') - nsd = nsd['nsd:nsd-catalog']['nsd'][0] + nsd = nsd['nsd']['nsd'][0] nspdf = NsPlacementDataFactory(self._produce_ut_vim_accounts_info(TestNsPlacementDataFactory.vim_accounts), self._produce_ut_vnf_price_list(), nsd=nsd,