Migrate OLM functional tests to RFC8040 step 2 39/100139/4
authorguillaume.lambert <guillaume.lambert@orange.com>
Thu, 17 Mar 2022 10:42:31 +0000 (11:42 +0100)
committerGuillaume Lambert <guillaume.lambert@orange.com>
Wed, 23 Mar 2022 12:17:39 +0000 (12:17 +0000)
- migrate test_utils create_ots_oms_function to RFC8040
- migrate some transportPCE internal API olm RPC calls to test_utils:
  - get-pm
  - calculate-spanloss-base
  - calculate-spanloss-current
  - service-power-setup
  - service-power-turndown
- clean up a few pieces of code

JIRA: TRNSPRTPCE-567
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
Change-Id: I598b37cb659f75d9063dffb0549cc49368b4e5ca

tests/transportpce_tests/1.2.1/test05_olm.py
tests/transportpce_tests/2.2.1/test09_olm.py
tests/transportpce_tests/common/test_utils_rfc8040.py

index e8299ea0b2990d35c037dbcbf61cab9241532dd2..8684cfc746bafa718ca5ca0b92aa0f8ef423194a 100644 (file)
@@ -20,7 +20,6 @@ import sys
 sys.path.append('transportpce_tests/common/')
 # pylint: disable=wrong-import-position
 # pylint: disable=import-error
-import test_utils  # nopep8
 import test_utils_rfc8040  # nopep8
 
 
@@ -90,114 +89,88 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
 
     def test_09_create_OTS_ROADMA(self):
-        response = test_utils.create_ots_oms_request("ROADMA01", "DEG1-TTP-TXRX")
+        response = test_utils_rfc8040.device_renderer_create_ots_oms_request('ROADMA01', 'DEG1-TTP-TXRX')
         self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Interfaces OTS-DEG1-TTP-TXRX - OMS-DEG1-TTP-TXRX successfully created on node ROADMA01',
-                      res["output"]["result"])
 
     def test_10_create_OTS_ROADMC(self):
-        response = test_utils.create_ots_oms_request("ROADMC01", "DEG2-TTP-TXRX")
+        response = test_utils_rfc8040.device_renderer_create_ots_oms_request('ROADMC01', 'DEG2-TTP-TXRX')
         self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Interfaces OTS-DEG2-TTP-TXRX - OMS-DEG2-TTP-TXRX successfully created on node ROADMC01',
-                      res["output"]["result"])
 
     def test_11_get_PM_ROADMA(self):
-        url = "{}/operations/transportpce-olm:get-pm"
-        data = {
-            "input": {
-                "node-id": "ROADMA01",
-                "resource-type": "interface",
-                "granularity": "15min",
-                "resource-identifier": {
-                    "resource-name": "OTS-DEG1-TTP-TXRX"
-                }
+        response = test_utils_rfc8040.olm_get_pm_request({
+            'node-id': 'ROADMA01',
+            'resource-type': 'interface',
+            'granularity': '15min',
+            'resource-identifier': {
+                'resource-name': 'OTS-DEG1-TTP-TXRX'
             }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn({
-            "pmparameter-name": "OpticalPowerOutput",
-            "pmparameter-value": "2.5"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerOutput',
+            'pmparameter-value': '2.5'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalReturnLoss",
-            "pmparameter-value": "49.9"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalReturnLoss',
+            'pmparameter-value': '49.9'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalPowerInput",
-            "pmparameter-value": "3"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerInput',
+            'pmparameter-value': '3'
+        }, response['output']['measurements'])
 
     def test_12_get_PM_ROADMC(self):
-        url = "{}/operations/transportpce-olm:get-pm"
-        data = {
-            "input": {
-                "node-id": "ROADMC01",
-                "resource-type": "interface",
-                "granularity": "15min",
-                "resource-identifier": {
-                    "resource-name": "OTS-DEG2-TTP-TXRX"
-                }
+        response = test_utils_rfc8040.olm_get_pm_request({
+            'node-id': 'ROADMC01',
+            'resource-type': 'interface',
+            'granularity': '15min',
+            'resource-identifier': {
+                'resource-name': 'OTS-DEG2-TTP-TXRX'
             }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn({
-            "pmparameter-name": "OpticalPowerOutput",
-            "pmparameter-value": "18.1"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerOutput',
+            'pmparameter-value': '18.1'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalReturnLoss",
-            "pmparameter-value": "48.8"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalReturnLoss',
+            'pmparameter-value': '48.8'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalPowerInput",
-            "pmparameter-value": "-3.2"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerInput',
+            'pmparameter-value': '-3.2'
+        }, response['output']['measurements'])
 
     def test_13_calculate_span_loss_base_ROADMA_ROADMC(self):
-        url = "{}/operations/transportpce-olm:calculate-spanloss-base"
-        data = {
-            "input": {
-                "src-type": "link",
-                "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX"
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        response = test_utils_rfc8040.olm_calculate_spanloss_base_request({
+            'src-type': 'link',
+            'link-id': 'ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX'
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Success',
-                      res["output"]["result"])
+                      response['output']['result'])
         self.assertIn({
-            "spanloss": "5.7",
-            "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX"
-        }, res["output"]["spans"])
+            'spanloss': '5.7',
+            'link-id': 'ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX'
+        }, response['output']['spans'])
         time.sleep(5)
 
     def test_14_calculate_span_loss_base_all(self):
-        url = "{}/operations/transportpce-olm:calculate-spanloss-base"
-        data = {
-            "input": {
-                "src-type": "all"
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        response = test_utils_rfc8040.olm_calculate_spanloss_base_request({
+            'src-type': 'all'
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Success',
-                      res["output"]["result"])
+                      response['output']['result'])
         self.assertIn({
-            "spanloss": "15.1",
-            "link-id": "ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX"
-        }, res["output"]["spans"])
+            'spanloss': '15.1',
+            'link-id': 'ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX'
+        }, response['output']['spans'])
         self.assertIn({
-            "spanloss": "5.7",
-            "link-id": "ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX"
-        }, res["output"]["spans"])
+            'spanloss': '5.7',
+            'link-id': 'ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX'
+        }, response['output']['spans'])
         time.sleep(5)
 
     def test_15_get_OTS_DEG1_TTP_TXRX_ROADMA(self):
@@ -271,45 +244,40 @@ class TransportOlmTesting(unittest.TestCase):
         time.sleep(10)
 
     def test_19_service_power_setup_XPDRA_XPDRC(self):
-        url = "{}/operations/transportpce-olm:service-power-setup"
-        data = {
-            "input": {
-                "service-name": "test",
-                "wave-number": 1,
-                "nodes": [
-                    {
-                        "dest-tp": "XPDR1-NETWORK1",
-                        "src-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDRA01"
-                    },
-                    {
-                        "dest-tp": "DEG1-TTP-TXRX",
-                        "src-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADMA01"
-                    },
-                    {
-                        "dest-tp": "SRG1-PP1-TXRX",
-                        "src-tp": "DEG2-TTP-TXRX",
-                        "node-id": "ROADMC01"
-                    },
-                    {
-                        "dest-tp": "XPDR1-CLIENT1",
-                        "src-tp": "XPDR1-NETWORK1",
-                        "node-id": "XPDRC01"
-                    }
-                ],
-                "center-freq": 196.1,
-                "nmc-width": 40,
-                "min-freq": 196.075,
-                "max-freq": 196.125,
-                "lower-spectral-slot-number": 761,
-                "higher-spectral-slot-number": 768
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Success', res["output"]["result"])
+        response = test_utils_rfc8040.olm_service_power_setup_request({
+            'service-name': 'test',
+            'wave-number': 1,
+            'nodes': [
+                {
+                    'dest-tp': 'XPDR1-NETWORK1',
+                    'src-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDRA01'
+                },
+                {
+                    'dest-tp': 'DEG1-TTP-TXRX',
+                    'src-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADMA01'
+                },
+                {
+                    'dest-tp': 'SRG1-PP1-TXRX',
+                    'src-tp': 'DEG2-TTP-TXRX',
+                    'node-id': 'ROADMC01'
+                },
+                {
+                    'dest-tp': 'XPDR1-CLIENT1',
+                    'src-tp': 'XPDR1-NETWORK1',
+                    'node-id': 'XPDRC01'
+                }
+            ],
+            'center-freq': 196.1,
+            'nmc-width': 40,
+            'min-freq': 196.075,
+            'max-freq': 196.125,
+            'lower-spectral-slot-number': 761,
+            'higher-spectral-slot-number': 768
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        self.assertIn('Success', response['output']['result'])
 
     def test_20_get_interface_XPDRA_XPDR1_NETWORK1(self):
         response = test_utils_rfc8040.check_node_attribute2_request(
@@ -332,45 +300,40 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertEqual("power", response['roadm-connections'][0]['opticalControlMode'])
 
     def test_23_service_power_setup_XPDRC_XPDRA(self):
-        url = "{}/operations/transportpce-olm:service-power-setup"
-        data = {
-            "input": {
-                "service-name": "test",
-                "wave-number": 1,
-                "nodes": [
-                    {
-                        "dest-tp": "XPDR1-NETWORK1",
-                        "src-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDRC01"
-                    },
-                    {
-                        "dest-tp": "DEG2-TTP-TXRX",
-                        "src-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADMC01"
-                    },
-                    {
-                        "src-tp": "DEG1-TTP-TXRX",
-                        "dest-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADMA01"
-                    },
-                    {
-                        "src-tp": "XPDR1-NETWORK1",
-                        "dest-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDRA01"
-                    }
-                ],
-                "center-freq": 196.1,
-                "nmc-width": 40,
-                "min-freq": 196.075,
-                "max-freq": 196.125,
-                "lower-spectral-slot-number": 761,
-                "higher-spectral-slot-number": 768
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Success', res["output"]["result"])
+        response = test_utils_rfc8040.olm_service_power_setup_request({
+            'service-name': 'test',
+            'wave-number': 1,
+            'nodes': [
+                {
+                    'dest-tp': 'XPDR1-NETWORK1',
+                    'src-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDRC01'
+                },
+                {
+                    'dest-tp': 'DEG2-TTP-TXRX',
+                    'src-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADMC01'
+                },
+                {
+                    'src-tp': 'DEG1-TTP-TXRX',
+                    'dest-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADMA01'
+                },
+                {
+                    'src-tp': 'XPDR1-NETWORK1',
+                    'dest-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDRA01'
+                }
+            ],
+            'center-freq': 196.1,
+            'nmc-width': 40,
+            'min-freq': 196.075,
+            'max-freq': 196.125,
+            'lower-spectral-slot-number': 761,
+            'higher-spectral-slot-number': 768
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        self.assertIn('Success', response['output']['result'])
 
     def test_24_get_interface_XPDRC_XPDR1_NETWORK1(self):
         response = test_utils_rfc8040.check_node_attribute2_request(
@@ -387,46 +350,40 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertEqual(float(response['roadm-connections'][0]['target-output-power']), -0.63)
 
     def test_26_service_power_turndown_XPDRA_XPDRC(self):
-        url = "{}/operations/transportpce-olm:service-power-turndown"
-        data = {
-            "input": {
-                "service-name": "test",
-                "wave-number": 1,
-                "nodes": [
-                    {
-                        "dest-tp": "XPDR1-NETWORK1",
-                        "src-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDRA01"
-                    },
-                    {
-                        "dest-tp": "DEG1-TTP-TXRX",
-                        "src-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADMA01"
-                    },
-                    {
-                        "dest-tp": "SRG1-PP1-TXRX",
-                        "src-tp": "DEG2-TTP-TXRX",
-                        "node-id": "ROADMC01"
-                    },
-                    {
-                        "dest-tp": "XPDR1-CLIENT1",
-                        "src-tp": "XPDR1-NETWORK1",
-                        "node-id": "XPDRC01"
-                    }
-                ],
-                "center-freq": 196.1,
-                "nmc-width": 40,
-                "min-freq": 196.075,
-                "max-freq": 196.125,
-                "lower-spectral-slot-number": 761,
-                "higher-spectral-slot-number": 768
-            }
-        }
-        response = test_utils.post_request(url, data)
-        print(response.json())
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Success', res["output"]["result"])
+        response = test_utils_rfc8040.olm_service_power_turndown_request({
+            'service-name': 'test',
+            'wave-number': 1,
+            'nodes': [
+                {
+                    'dest-tp': 'XPDR1-NETWORK1',
+                    'src-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDRA01'
+                },
+                {
+                    'dest-tp': 'DEG1-TTP-TXRX',
+                    'src-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADMA01'
+                },
+                {
+                    'dest-tp': 'SRG1-PP1-TXRX',
+                    'src-tp': 'DEG2-TTP-TXRX',
+                    'node-id': 'ROADMC01'
+                },
+                {
+                    'dest-tp': 'XPDR1-CLIENT1',
+                    'src-tp': 'XPDR1-NETWORK1',
+                    'node-id': 'XPDRC01'
+                }
+            ],
+            'center-freq': 196.1,
+            'nmc-width': 40,
+            'min-freq': 196.075,
+            'max-freq': 196.125,
+            'lower-spectral-slot-number': 761,
+            'higher-spectral-slot-number': 768
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        self.assertIn('Success', response['output']['result'])
 
     def test_27_get_roadmconnection_ROADMA(self):
         response = test_utils_rfc8040.check_node_attribute_request(
@@ -567,12 +524,10 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
 
     def test_38_calculate_span_loss_current(self):
-        url = "{}/operations/transportpce-olm:calculate-spanloss-current"
-        response = test_utils.post_request(url, None)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        response = test_utils_rfc8040.olm_calculate_spanloss_current_request()
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Success',
-                      res["output"]["result"])
+                      response["output"]["result"])
         time.sleep(5)
 
     def test_39_rdmA_device_disconnected(self):
index a34d94391001f0a3fd5d7232a2fca794d53877d6..b19f14efef3e87ce65275aaed8f800a048c99c76 100644 (file)
@@ -20,7 +20,6 @@ import sys
 sys.path.append('transportpce_tests/common/')
 # pylint: disable=wrong-import-position
 # pylint: disable=import-error
-import test_utils  # nopep8
 import test_utils_rfc8040  # nopep8
 
 
@@ -90,115 +89,89 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
 
     def test_09_create_OTS_ROADMA(self):
-        response = test_utils.create_ots_oms_request("ROADM-A1", "DEG1-TTP-TXRX")
-        time.sleep(10)
+        response = test_utils_rfc8040.device_renderer_create_ots_oms_request('ROADM-A1', 'DEG1-TTP-TXRX')
         self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Interfaces OTS-DEG1-TTP-TXRX - OMS-DEG1-TTP-TXRX successfully created on node ROADM-A1',
-                      res["output"]["result"])
 
     def test_10_create_OTS_ROADMC(self):
-        response = test_utils.create_ots_oms_request("ROADM-C1", "DEG2-TTP-TXRX")
+        response = test_utils_rfc8040.device_renderer_create_ots_oms_request('ROADM-C1', 'DEG2-TTP-TXRX')
         self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Interfaces OTS-DEG2-TTP-TXRX - OMS-DEG2-TTP-TXRX successfully created on node ROADM-C1',
-                      res["output"]["result"])
 
     def test_11_get_PM_ROADMA(self):
-        url = "{}/operations/transportpce-olm:get-pm"
-        data = {
-            "input": {
-                "node-id": "ROADM-A1",
-                "resource-type": "interface",
-                "granularity": "15min",
-                "resource-identifier": {
-                    "resource-name": "OTS-DEG2-TTP-TXRX"
-                }
+        response = test_utils_rfc8040.olm_get_pm_request({
+            'node-id': 'ROADM-A1',
+            'resource-type': 'interface',
+            'granularity': '15min',
+            'resource-identifier': {
+                'resource-name': 'OTS-DEG2-TTP-TXRX'
             }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn({
-            "pmparameter-name": "OpticalPowerOutput",
-            "pmparameter-value": "2.5"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerOutput',
+            'pmparameter-value': '2.5'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalReturnLoss",
-            "pmparameter-value": "40"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalReturnLoss',
+            'pmparameter-value': '40'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalPowerInput",
-            "pmparameter-value": "-21.1"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerInput',
+            'pmparameter-value': '-21.1'
+        }, response['output']['measurements'])
 
     def test_12_get_PM_ROADMC(self):
-        url = "{}/operations/transportpce-olm:get-pm"
-        data = {
-            "input": {
-                "node-id": "ROADM-C1",
-                "resource-type": "interface",
-                "granularity": "15min",
-                "resource-identifier": {
-                    "resource-name": "OTS-DEG1-TTP-TXRX"
-                }
+        response = test_utils_rfc8040.olm_get_pm_request({
+            'node-id': 'ROADM-C1',
+            'resource-type': 'interface',
+            'granularity': '15min',
+            'resource-identifier': {
+                'resource-name': 'OTS-DEG1-TTP-TXRX'
             }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn({
-            "pmparameter-name": "OpticalPowerOutput",
-            "pmparameter-value": "4.6"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerOutput',
+            'pmparameter-value': '4.6'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalReturnLoss",
-            "pmparameter-value": "49.1"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalReturnLoss',
+            'pmparameter-value': '49.1'
+        }, response['output']['measurements'])
         self.assertIn({
-            "pmparameter-name": "OpticalPowerInput",
-            "pmparameter-value": "-15.1"
-        }, res["output"]["measurements"])
+            'pmparameter-name': 'OpticalPowerInput',
+            'pmparameter-value': '-15.1'
+        }, response['output']['measurements'])
 
     def test_13_calculate_span_loss_base_ROADMA_ROADMC(self):
-        url = "{}/operations/transportpce-olm:calculate-spanloss-base"
-        data = {
-            "input": {
-                "src-type": "link",
-                "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        response = test_utils_rfc8040.olm_calculate_spanloss_base_request({
+            'src-type': 'link',
+            'link-id': 'ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX'
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Success',
-                      res["output"]["result"])
+                      response['output']['result'])
         self.assertIn({
-            "spanloss": "17.6",
-            "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
-        }, res["output"]["spans"])
+            'spanloss': '17.6',
+            'link-id': 'ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX'
+        }, response['output']['spans'])
         time.sleep(5)
 
     def test_14_calculate_span_loss_base_all(self):
-        url = "{}/operations/transportpce-olm:calculate-spanloss-base"
-        data = {
-            "input": {
-                "src-type": "all"
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        response = test_utils_rfc8040.olm_calculate_spanloss_base_request({
+            'src-type': 'all'
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Success',
-                      res["output"]["result"])
+                      response['output']['result'])
         self.assertIn({
-            "spanloss": "25.7",
-            "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX"
-        }, res["output"]["spans"])
+            'spanloss': '25.7',
+            'link-id': 'ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX'
+        }, response['output']['spans'])
         self.assertIn({
-            "spanloss": "17.6",
-            "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX"
-        }, res["output"]["spans"])
+            'spanloss': '17.6',
+            'link-id': 'ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX'
+        }, response['output']['spans'])
         time.sleep(5)
 
     def test_15_get_OTS_DEG2_TTP_TXRX_ROADMA(self):
@@ -268,41 +241,36 @@ class TransportOlmTesting(unittest.TestCase):
         time.sleep(10)
 
     def test_19_service_power_setup_XPDRA_XPDRC(self):
-        url = "{}/operations/transportpce-olm:service-power-setup"
-        data = {
-            "input": {
-                "service-name": "test",
-                "wave-number": 1,
-                "nodes": [
-                    {
-                        "dest-tp": "XPDR1-NETWORK1",
-                        "src-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDR-A1"
-                    },
-                    {
-                        "dest-tp": "DEG2-TTP-TXRX",
-                        "src-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADM-A1"
-                    },
-                    {
-                        "dest-tp": "SRG1-PP1-TXRX",
-                        "src-tp": "DEG1-TTP-TXRX",
-                        "node-id": "ROADM-C1"
-                    },
-                    {
-                        "dest-tp": "XPDR1-CLIENT1",
-                        "src-tp": "XPDR1-NETWORK1",
-                        "node-id": "XPDR-C1"
-                    }
-                ],
-                "lower-spectral-slot-number": 761,
-                "higher-spectral-slot-number": 768
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Success', res["output"]["result"])
+        response = test_utils_rfc8040.olm_service_power_setup_request({
+            'service-name': 'test',
+            'wave-number': 1,
+            'nodes': [
+                {
+                    'dest-tp': 'XPDR1-NETWORK1',
+                    'src-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDR-A1'
+                },
+                {
+                    'dest-tp': 'DEG2-TTP-TXRX',
+                    'src-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADM-A1'
+                },
+                {
+                    'dest-tp': 'SRG1-PP1-TXRX',
+                    'src-tp': 'DEG1-TTP-TXRX',
+                    'node-id': 'ROADM-C1'
+                },
+                {
+                    'dest-tp': 'XPDR1-CLIENT1',
+                    'src-tp': 'XPDR1-NETWORK1',
+                    'node-id': 'XPDR-C1'
+                }
+            ],
+            'lower-spectral-slot-number': 761,
+            'higher-spectral-slot-number': 768
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        self.assertIn('Success', response['output']['result'])
 
     def test_20_get_interface_XPDRA_XPDR1_NETWORK1(self):
         response = test_utils_rfc8040.check_node_attribute2_request(
@@ -325,41 +293,36 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertEqual("power", response['roadm-connections'][0]['opticalControlMode'])
 
     def test_23_service_power_setup_XPDRC_XPDRA(self):
-        url = "{}/operations/transportpce-olm:service-power-setup"
-        data = {
-            "input": {
-                "service-name": "test",
-                "wave-number": 1,
-                "nodes": [
-                    {
-                        "dest-tp": "XPDR1-NETWORK1",
-                        "src-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDR-C1"
-                    },
-                    {
-                        "dest-tp": "DEG1-TTP-TXRX",
-                        "src-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADM-C1"
-                    },
-                    {
-                        "src-tp": "DEG2-TTP-TXRX",
-                        "dest-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADM-A1"
-                    },
-                    {
-                        "src-tp": "XPDR1-NETWORK1",
-                        "dest-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDR-A1"
-                    }
-                ],
-                "lower-spectral-slot-number": 761,
-                "higher-spectral-slot-number": 768
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Success', res["output"]["result"])
+        response = test_utils_rfc8040.olm_service_power_setup_request({
+            'service-name': 'test',
+            'wave-number': 1,
+            'nodes': [
+                {
+                    'dest-tp': 'XPDR1-NETWORK1',
+                    'src-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDR-C1'
+                },
+                {
+                    'dest-tp': 'DEG1-TTP-TXRX',
+                    'src-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADM-C1'
+                },
+                {
+                    'src-tp': 'DEG2-TTP-TXRX',
+                    'dest-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADM-A1'
+                },
+                {
+                    'src-tp': 'XPDR1-NETWORK1',
+                    'dest-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDR-A1'
+                }
+            ],
+            'lower-spectral-slot-number': 761,
+            'higher-spectral-slot-number': 768
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        self.assertIn('Success', response['output']['result'])
 
     def test_24_get_interface_XPDRC_XPDR1_NETWORK1(self):
         response = test_utils_rfc8040.check_node_attribute2_request(
@@ -376,41 +339,36 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertEqual(float(response['roadm-connections'][0]['target-output-power']), 2.0)
 
     def test_26_service_power_turndown_XPDRA_XPDRC(self):
-        url = "{}/operations/transportpce-olm:service-power-turndown"
-        data = {
-            "input": {
-                "service-name": "test",
-                "wave-number": 1,
-                "nodes": [
-                    {
-                        "dest-tp": "XPDR1-NETWORK1",
-                        "src-tp": "XPDR1-CLIENT1",
-                        "node-id": "XPDR-A1"
-                    },
-                    {
-                        "dest-tp": "DEG2-TTP-TXRX",
-                        "src-tp": "SRG1-PP1-TXRX",
-                        "node-id": "ROADM-A1"
-                    },
-                    {
-                        "dest-tp": "SRG1-PP1-TXRX",
-                        "src-tp": "DEG1-TTP-TXRX",
-                        "node-id": "ROADM-C1"
-                    },
-                    {
-                        "dest-tp": "XPDR1-CLIENT1",
-                        "src-tp": "XPDR1-NETWORK1",
-                        "node-id": "XPDR-C1"
-                    }
-                ],
-                "lower-spectral-slot-number": 761,
-                "higher-spectral-slot-number": 768
-            }
-        }
-        response = test_utils.post_request(url, data)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertIn('Success', res["output"]["result"])
+        response = test_utils_rfc8040.olm_service_power_turndown_request({
+            'service-name': 'test',
+            'wave-number': 1,
+            'nodes': [
+                {
+                    'dest-tp': 'XPDR1-NETWORK1',
+                    'src-tp': 'XPDR1-CLIENT1',
+                    'node-id': 'XPDR-A1'
+                },
+                {
+                    'dest-tp': 'DEG2-TTP-TXRX',
+                    'src-tp': 'SRG1-PP1-TXRX',
+                    'node-id': 'ROADM-A1'
+                },
+                {
+                    'dest-tp': 'SRG1-PP1-TXRX',
+                    'src-tp': 'DEG1-TTP-TXRX',
+                    'node-id': 'ROADM-C1'
+                },
+                {
+                    'dest-tp': 'XPDR1-CLIENT1',
+                    'src-tp': 'XPDR1-NETWORK1',
+                    'node-id': 'XPDR-C1'
+                }
+            ],
+            'lower-spectral-slot-number': 761,
+            'higher-spectral-slot-number': 768
+        })
+        self.assertEqual(response['status_code'], requests.codes.ok)
+        self.assertIn('Success', response['output']['result'])
 
     def test_27_get_roadmconnection_ROADMA(self):
         response = test_utils_rfc8040.check_node_attribute_request(
@@ -551,12 +509,10 @@ class TransportOlmTesting(unittest.TestCase):
         self.assertIn(response.status_code, (requests.codes.ok, requests.codes.no_content))
 
     def test_38_calculate_span_loss_current(self):
-        url = "{}/operations/transportpce-olm:calculate-spanloss-current"
-        response = test_utils.post_request(url, None)
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
+        response = test_utils_rfc8040.olm_calculate_spanloss_current_request()
+        self.assertEqual(response['status_code'], requests.codes.ok)
         self.assertIn('Success',
-                      res["output"]["result"])
+                      response["output"]["result"])
         time.sleep(5)
 
     def test_39_rdmA_device_disconnected(self):
index 6e8e28e261c5dc511a24c9b4fed0e3ff65cd19f4..ae4716189868f53f4477a07e34761d93f7f8cfa7 100644 (file)
@@ -543,6 +543,18 @@ def connect_rdm_to_xpdr_request(payload: dict):
     return post_request(url, data)
 
 
+def device_renderer_create_ots_oms_request(nodeid: str, lcp: str):
+    url = "{}/operations/transportpce-device-renderer:create-ots-oms"
+    payload = {
+        'node-id': nodeid,
+        'logical-connection-point': lcp}
+    if RESTCONF_VERSION == 'draft-bierman02':
+        data = prepend_dict_keys({'input': payload}, 'transportpce-device-renderer:')
+    else:
+        data = {'input': payload}
+    return post_request(url, data)
+
+
 def device_renderer_service_path_request(payload: dict):
     url = "{}/operations/transportpce-device-renderer:service-path"
     if RESTCONF_VERSION == 'draft-bierman02':
@@ -586,3 +598,74 @@ def renderer_service_implementation_request(payload: dict):
     return_output = res[return_key[RESTCONF_VERSION]]
     return {'status_code': response.status_code,
             'output': return_output}
+
+
+def olm_get_pm_request(payload: dict):
+    url = "{}/operations/transportpce-olm:get-pm"
+    if RESTCONF_VERSION == 'draft-bierman02':
+        data = prepend_dict_keys({'input': payload}, 'transportpce-olm:')
+    else:
+        data = {'input': payload}
+    response = post_request(url, data)
+    res = response.json()
+    return_key = {'rfc8040': 'transportpce-olm:output',
+                  'draft-bierman02': 'output'}
+    return_output = res[return_key[RESTCONF_VERSION]]
+    return {'status_code': response.status_code,
+            'output': return_output}
+
+
+def olm_calculate_spanloss_base_request(payload: dict):
+    url = "{}/operations/transportpce-olm:calculate-spanloss-base"
+    if RESTCONF_VERSION == 'draft-bierman02':
+        data = prepend_dict_keys({'input': payload}, 'transportpce-olm:')
+    else:
+        data = {'input': payload}
+    response = post_request(url, data)
+    res = response.json()
+    return_key = {'rfc8040': 'transportpce-olm:output',
+                  'draft-bierman02': 'output'}
+    return_output = res[return_key[RESTCONF_VERSION]]
+    return {'status_code': response.status_code,
+            'output': return_output}
+
+
+def olm_service_power_setup_request(payload: dict):
+    url = "{}/operations/transportpce-olm:service-power-setup"
+    if RESTCONF_VERSION == 'draft-bierman02':
+        data = prepend_dict_keys({'input': payload}, 'transportpce-olm:')
+    else:
+        data = {'input': payload}
+    response = post_request(url, data)
+    res = response.json()
+    return_key = {'rfc8040': 'transportpce-olm:output',
+                  'draft-bierman02': 'output'}
+    return_output = res[return_key[RESTCONF_VERSION]]
+    return {'status_code': response.status_code,
+            'output': return_output}
+
+
+def olm_service_power_turndown_request(payload: dict):
+    url = "{}/operations/transportpce-olm:service-power-turndown"
+    if RESTCONF_VERSION == 'draft-bierman02':
+        data = prepend_dict_keys({'input': payload}, 'transportpce-olm:')
+    else:
+        data = {'input': payload}
+    response = post_request(url, data)
+    res = response.json()
+    return_key = {'rfc8040': 'transportpce-olm:output',
+                  'draft-bierman02': 'output'}
+    return_output = res[return_key[RESTCONF_VERSION]]
+    return {'status_code': response.status_code,
+            'output': return_output}
+
+
+def olm_calculate_spanloss_current_request():
+    url = "{}/operations/transportpce-olm:calculate-spanloss-current"
+    response = post_request(url, None)
+    res = response.json()
+    return_key = {'rfc8040': 'transportpce-olm:output',
+                  'draft-bierman02': 'output'}
+    return_output = res[return_key[RESTCONF_VERSION]]
+    return {'status_code': response.status_code,
+            'output': return_output}