fix deprecated openroadm interfaces/objects
[transportpce.git] / tests / transportpce_tests / 2.2.1 / test_renderer_service_path_nominal.py
index 31fe8ab674d4839cbb21e09b55a45803b78da481..c70bf9dd1ce1f9865e46f209338a0aaf3695d469 100644 (file)
@@ -19,6 +19,7 @@ import os
 import psutil
 import shutil
 from unittest.result import failfast
+import test_utils
 
 
 class TransportPCERendererTesting(unittest.TestCase):
@@ -30,42 +31,21 @@ class TransportPCERendererTesting(unittest.TestCase):
 
 #START_IGNORE_XTESTING
 
-    @classmethod
-    def __start_honeynode1(cls):
-        executable = ("./honeynode/2.2.1/honeynode-distribution/target/honeynode-distribution-1.18.01-hc"
-                      "/honeynode-distribution-1.18.01/honeycomb-tpce")
-        if os.path.isfile(executable):
-            with open('honeynode1.log', 'w') as outfile:
-                cls.honeynode_process1 = subprocess.Popen(
-                    [executable, "17841", "sample_configs/openroadm/2.2.1/oper-ROADMA.xml"],
-                    stdout=outfile)
-
-    @classmethod
-    def __start_honeynode2(cls):
-        executable = ("./honeynode/2.2.1/honeynode-distribution/target/honeynode-distribution-1.18.01-hc"
-                      "/honeynode-distribution-1.18.01/honeycomb-tpce")
-        if os.path.isfile(executable):
-            with open('honeynode2.log', 'w') as outfile:
-                cls.honeynode_process2 = subprocess.Popen(
-                    [executable, "17840", "sample_configs/openroadm/2.2.1/oper-XPDRA.xml"],
-                    stdout=outfile)
-
-    @classmethod
-    def __start_odl(cls):
-        executable = "../karaf/target/assembly/bin/karaf"
-        with open('odl.log', 'w') as outfile:
-            cls.odl_process = subprocess.Popen(
-                ["bash", executable, "server"], stdout=outfile,
-                stdin=open(os.devnull))
-
     @classmethod
     def setUpClass(cls):
-        cls.__start_honeynode1()
+        print ("starting honeynode1...")
+        cls.honeynode_process1 = test_utils.start_xpdra_honeynode()
         time.sleep(20)
-        cls.__start_honeynode2()
+
+        print ("starting honeynode2...")
+        cls.honeynode_process2 = test_utils.start_roadma_honeynode()
         time.sleep(20)
-        cls.__start_odl()
+        print ("all honeynodes started")
+
+        print ("starting opendaylight...")
+        cls.odl_process = test_utils.start_tpce()
         time.sleep(60)
+        print ("opendaylight started")
 
     @classmethod
     def tearDownClass(cls):
@@ -140,11 +120,11 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
              {'supporting-port': 'L1', 'supporting-circuit-pack-name': '1/0',
-              'logical-connection-point': 'DEG1-TTP-TXRX'},
+              'logical-connection-point': 'DEG1-TTP-TXRX', 'port-direction': 'bidirectional'},
              res['nodes'][0]['mapping'])
         self.assertIn(
              {'supporting-port': 'C3', 'supporting-circuit-pack-name': '3/0',
-              'logical-connection-point': 'SRG1-PP3-TXRX'},
+              'logical-connection-point': 'SRG1-PP3-TXRX', 'port-direction': 'bidirectional'},
              res['nodes'][0]['mapping'])
 
     def test_04_xpdr_portmapping(self):
@@ -158,12 +138,14 @@ class TransportPCERendererTesting(unittest.TestCase):
         res = response.json()
         self.assertIn(
              {'supporting-port': '1', 'supporting-circuit-pack-name': '1/0/1-PLUG-NET',
-              'logical-connection-point': 'XPDR1-NETWORK1'},
+              'logical-connection-point': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-network',
+              'port-direction': 'bidirectional', 'associated-lcp': 'XPDR1-CLIENT1'},
              res['nodes'][0]['mapping'])
         self.assertIn(
              {'supporting-port': 'C1',
               'supporting-circuit-pack-name': '1/0/1-PLUG-CLIENT',
-              'logical-connection-point': 'XPDR1-CLIENT1'},
+              'logical-connection-point': 'XPDR1-CLIENT1', 'port-direction': 'bidirectional',
+              'associated-lcp': 'XPDR1-NETWORK1', 'port-qual': 'xpdr-client'},
              res['nodes'][0]['mapping'])
 
     def test_05_service_path_create(self):
@@ -191,75 +173,73 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_06_service_path_create_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                 "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-                "interface/DEG1-TTP-TXRX-nmc"
+                "interface/DEG1-TTP-TXRX-nmc-7"
                 .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
              "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
-        self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-nmc', 'administrative-state': 'inService',
+        self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-nmc-7', 'administrative-state': 'inService',
               'supporting-circuit-pack-name': '1/0',
               'type': 'org-openroadm-interfaces:networkMediaChannelConnectionTerminationPoint',
               'supporting-port': 'L1'}, res['interface'][0])
         self.assertDictEqual(
-             {u'frequency': 195.79999999999998, u'width': 1531.11},
+             {u'frequency': 195.8, u'width': 40},
              res['interface'][0]['org-openroadm-network-media-channel-interfaces:nmc-ctp'])
 
     def test_07_service_path_create_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                 "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-                "interface/DEG1-TTP-TXRX-mc"
+                "interface/DEG1-TTP-TXRX-mc-7"
                 .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
              "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
-        self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-mc', 'administrative-state': 'inService',
+        self.assertDictContainsSubset({'name': 'DEG1-TTP-TXRX-mc-7', 'administrative-state': 'inService',
               'supporting-circuit-pack-name': '1/0',
               'type': 'org-openroadm-interfaces:mediaChannelTrailTerminationPoint',
               'supporting-port': 'L1'}, res['interface'][0])
         self.assertDictEqual(
-             {u'min-freq': 195.77499999999998, u'max-freq': 195.825},
+             {u'min-freq': 195.775, u'max-freq': 195.825},
              res['interface'][0]['org-openroadm-media-channel-interfaces:mc-ttp'])
 
 
     def test_08_service_path_create_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                 "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-                "interface/SRG1-PP3-TXRX-nmc"
+                "interface/SRG1-PP3-TXRX-nmc-7"
                 .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
              "GET", url, headers=headers, auth=('admin', 'admin'))
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
-        self.assertDictContainsSubset({'name': 'SRG1-PP3-TXRX-nmc', 'administrative-state': 'inService',
+        self.assertDictContainsSubset({'name': 'SRG1-PP3-TXRX-nmc-7', 'administrative-state': 'inService',
               'supporting-circuit-pack-name': '3/0',
               'type': 'org-openroadm-interfaces:networkMediaChannelConnectionTerminationPoint',
               'supporting-port': 'C3'}, res['interface'][0])
         self.assertDictEqual(
-             {u'frequency': 195.79999999999998, u'width': 1531.11},
+             {u'frequency': 195.8, u'width': 40},
              res['interface'][0]['org-openroadm-network-media-channel-interfaces:nmc-ctp'])
 
+    # -mc supporting interfaces must not be created for SRG, only degrees
     def test_09_service_path_create_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                 "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-                "interface/SRG1-PP3-TXRX-mc"
+                "interface/SRG1-PP3-TXRX-mc-7"
                 .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
              "GET", url, headers=headers, auth=('admin', 'admin'))
-        self.assertEqual(response.status_code, requests.codes.ok)
+        self.assertEqual(response.status_code, requests.codes.not_found)
         res = response.json()
-        self.assertDictContainsSubset({'name': 'SRG1-PP3-TXRX-mc', 'administrative-state': 'inService',
-              'supporting-circuit-pack-name': '3/0',
-              'type': 'org-openroadm-interfaces:mediaChannelTrailTerminationPoint',
-              'supporting-port': 'C3'}, res['interface'][0])
-        self.assertDictEqual(
-             {u'min-freq': 195.77499999999998, u'max-freq': 195.825},
-             res['interface'][0]['org-openroadm-media-channel-interfaces:mc-ttp'])
+        self.assertIn(
+             {"error-type":"application", "error-tag":"data-missing",
+              "error-message":"Request could not be completed because the relevant data model content does not exist"},
+             res['errors']['error'])
 
     def test_10_service_path_create_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
@@ -276,10 +256,10 @@ class TransportPCERendererTesting(unittest.TestCase):
               'opticalControlMode': 'off'},
              res['roadm-connections'][0])
         self.assertDictEqual(
-             {'src-if': 'SRG1-PP3-TXRX-nmc'},
+             {'src-if': 'SRG1-PP3-TXRX-nmc-7'},
              res['roadm-connections'][0]['source'])
         self.assertDictEqual(
-             {'dst-if': 'DEG1-TTP-TXRX-nmc'},
+             {'dst-if': 'DEG1-TTP-TXRX-nmc-7'},
              res['roadm-connections'][0]['destination'])
 
     def test_11_service_path_create_xpdr_check(self):
@@ -301,7 +281,7 @@ class TransportPCERendererTesting(unittest.TestCase):
         self.assertDictEqual(
              {u'rate': u'org-openroadm-common-types:R100G',
               u'transmit-power':-5,
-              u'frequency': 195.79999999999998},
+              u'frequency': 195.8},
              res['interface'][0]['org-openroadm-optical-channel-interfaces:och'])
 
     def test_12_service_path_create_xpdr_check(self):
@@ -367,11 +347,7 @@ class TransportPCERendererTesting(unittest.TestCase):
               'supporting-port': 'C1'},
              res['interface'][0])
         self.assertDictEqual(
-             {'speed': 100000,
-              'mtu': 9000,
-              'auto-negotiation': 'enabled',
-              'duplex': 'full',
-              'fec': 'off'},
+             {u'fec': u'off', u'speed': 100000},
              res['interface'][0]['org-openroadm-ethernet-interfaces:ethernet'])
 
     def test_15_service_path_create_xpdr_check(self):
@@ -422,7 +398,7 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_18_service_path_delete_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                 "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-                "interface/DEG1-TTP-TXRX-mc"
+                "interface/DEG1-TTP-TXRX-mc-7"
                 .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
@@ -437,7 +413,7 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_19_service_path_delete_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                 "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-                "interface/DEG1-TTP-TXRX-nmc"
+                "interface/DEG1-TTP-TXRX-nmc-7"
                 .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
@@ -452,7 +428,7 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_20_service_path_delete_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-               "interface/SRG1-PP3-TXRX-mc"
+               "interface/SRG1-PP3-TXRX-mc-7"
                .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
@@ -466,7 +442,7 @@ class TransportPCERendererTesting(unittest.TestCase):
     def test_21_service_path_delete_rdm_check(self):
         url = ("{}/config/network-topology:network-topology/topology/topology-netconf/"
                "node/ROADM-A1/yang-ext:mount/org-openroadm-device:org-openroadm-device/"
-               "interface/SRG1-PP3-TXRX-nmc"
+               "interface/SRG1-PP3-TXRX-nmc-7"
                .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(