- # START_IGNORE_XTESTING
-
- @classmethod
- def setUpClass(cls):
- cls.sim_process1 = test_utils.start_sim('xpdra')
- time.sleep(20)
-
- cls.sim_process2 = test_utils.start_sim('roadma-full')
- time.sleep(20)
-
- cls.sim_process3 = test_utils.start_sim('roadmc-full')
- time.sleep(20)
-
- cls.sim_process4 = test_utils.start_sim('xpdrc')
- time.sleep(20)
- print("all sims started")
-
- cls.odl_process = test_utils.start_tpce()
- time.sleep(80)
- print("opendaylight started")
-
- @classmethod
- def tearDownClass(cls):
- for child in psutil.Process(cls.odl_process.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.odl_process.send_signal(signal.SIGINT)
- cls.odl_process.wait()
- for child in psutil.Process(cls.sim_process1.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.sim_process1.send_signal(signal.SIGINT)
- cls.sim_process1.wait()
- for child in psutil.Process(cls.sim_process2.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.sim_process2.send_signal(signal.SIGINT)
- cls.sim_process2.wait()
- for child in psutil.Process(cls.sim_process3.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.sim_process3.send_signal(signal.SIGINT)
- cls.sim_process3.wait()
- for child in psutil.Process(cls.sim_process4.pid).children():
- child.send_signal(signal.SIGINT)
- child.wait()
- cls.sim_process4.send_signal(signal.SIGINT)
- cls.sim_process4.wait()
- print("all processes killed")
-
- def setUp(self): # instruction executed before each test method
- print("execution of {}".format(self.id().split(".")[-1]))
-
- # END_IGNORE_XTESTING
-
- # connect netconf devices
- def test_01_connect_xpdrA(self):
- url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/XPDRA01"
- .format(self.restconf_baseurl))
- data = {"node": [{
- "node-id": "XPDRA01",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": test_utils.sims['xpdra']['port'],
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.created)
- time.sleep(20)
-
- def test_02_connect_xpdrC(self):
- url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/XPDRC01"
- .format(self.restconf_baseurl))
- data = {"node": [{
- "node-id": "XPDRC01",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": test_utils.sims['xpdrc']['port'],
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.created)
- time.sleep(20)
-
- def test_03_connect_rdmA(self):
- url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/ROADMA01"
- .format(self.restconf_baseurl))
- data = {"node": [{
- "node-id": "ROADMA01",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": test_utils.sims['roadma-full']['port'],
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.created)
- time.sleep(20)
-
- def test_04_connect_rdmC(self):
- url = ("{}/config/network-topology:"
- "network-topology/topology/topology-netconf/node/ROADMC01"
- .format(self.restconf_baseurl))
- data = {"node": [{
- "node-id": "ROADMC01",
- "netconf-node-topology:username": "admin",
- "netconf-node-topology:password": "admin",
- "netconf-node-topology:host": "127.0.0.1",
- "netconf-node-topology:port": test_utils.sims['roadmc-full']['port'],
- "netconf-node-topology:tcp-only": "false",
- "netconf-node-topology:pass-through": {}}]}
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.created)
- time.sleep(20)
-
- def test_05_connect_xprdA_N1_to_roadmA_PP1(self):
- url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links".\
- format(self.restconf_baseurl)
- data = {
- "networkutils:input": {
- "networkutils:links-input": {
- "networkutils:xpdr-node": "XPDRA01",
- "networkutils:xpdr-num": "1",
- "networkutils:network-num": "1",
- "networkutils:rdm-node": "ROADMA01",
- "networkutils:srg-num": "1",
- "networkutils:termination-point-num": "SRG1-PP1-TXRX"
- }
- }
- }
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertIn('Xponder Roadm Link created successfully',
- res["output"]["result"])
- time.sleep(2)
-
- def test_06_connect_roadmA_PP1_to_xpdrA_N1(self):
- url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links".\
- format(self.restconf_baseurl)
- data = {
- "networkutils:input": {
- "networkutils:links-input": {
- "networkutils:xpdr-node": "XPDRA01",
- "networkutils:xpdr-num": "1",
- "networkutils:network-num": "1",
- "networkutils:rdm-node": "ROADMA01",
- "networkutils:srg-num": "1",
- "networkutils:termination-point-num": "SRG1-PP1-TXRX"
- }
- }
- }
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertIn('Roadm Xponder links created successfully',
- res["output"]["result"])
- time.sleep(2)
-
- def test_07_connect_xprdC_N1_to_roadmC_PP1(self):
- url = "{}/operations/transportpce-networkutils:init-xpdr-rdm-links".\
- format(self.restconf_baseurl)
- data = {
- "networkutils:input": {
- "networkutils:links-input": {
- "networkutils:xpdr-node": "XPDRC01",
- "networkutils:xpdr-num": "1",
- "networkutils:network-num": "1",
- "networkutils:rdm-node": "ROADMC01",
- "networkutils:srg-num": "1",
- "networkutils:termination-point-num": "SRG1-PP1-TXRX"
- }
- }
- }
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertIn('Xponder Roadm Link created successfully',
- res["output"]["result"])
- time.sleep(2)
-
- def test_08_connect_roadmC_PP1_to_xpdrC_N1(self):
- url = "{}/operations/transportpce-networkutils:init-rdm-xpdr-links".\
- format(self.restconf_baseurl)
- data = {
- "networkutils:input": {
- "networkutils:links-input": {
- "networkutils:xpdr-node": "XPDRC01",
- "networkutils:xpdr-num": "1",
- "networkutils:network-num": "1",
- "networkutils:rdm-node": "ROADMC01",
- "networkutils:srg-num": "1",
- "networkutils:termination-point-num": "SRG1-PP1-TXRX"
- }
- }
- }
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "POST", url, data=json.dumps(data),
- headers=headers, auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.ok)
- res = response.json()
- self.assertIn('Roadm Xponder links created successfully',
- res["output"]["result"])
- time.sleep(2)
-
- def test_09_add_omsAttributes_ROADMA_ROADMC(self):
- # Config ROADMA-ROADMC oms-attributes
- url = (
- "{}/config/ietf-network:"
- "networks/network/openroadm-topology/ietf-network-topology:"
- "link/ROADMA01-DEG1-DEG1-TTP-TXRXtoROADMC01-DEG2-DEG2-TTP-TXRX/"
- "org-openroadm-network-topology:"
- "OMS-attributes/span"
- .format(self.restconf_baseurl))
- data = {"span": {
- "clfi": "fiber1",
- "auto-spanloss": "true",
- "spanloss-base": 11.4,
- "spanloss-current": 12,
- "engineered-spanloss": 12.2,
- "link-concatenation": [{
- "SRLG-Id": 0,
- "fiber-type": "smf",
- "SRLG-length": 100000,
- "pmd": 0.5}]}}
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.created)
-
- def test_10_add_omsAttributes_ROADMC_ROADMA(self):
- # Config ROADMC-ROADMA oms-attributes
- url = (
- "{}/config/ietf-network:"
- "networks/network/openroadm-topology/ietf-network-topology:"
- "link/ROADMC01-DEG2-DEG2-TTP-TXRXtoROADMA01-DEG1-DEG1-TTP-TXRX/"
- "org-openroadm-network-topology:"
- "OMS-attributes/span"
- .format(self.restconf_baseurl))
- data = {"span": {
- "clfi": "fiber1",
- "auto-spanloss": "true",
- "spanloss-base": 11.4,
- "spanloss-current": 12,
- "engineered-spanloss": 12.2,
- "link-concatenation": [{
- "SRLG-Id": 0,
- "fiber-type": "smf",
- "SRLG-length": 100000,
- "pmd": 0.5}]}}
- headers = {'content-type': 'application/json'}
- response = requests.request(
- "PUT", url, data=json.dumps(data), headers=headers,
- auth=('admin', 'admin'))
- self.assertEqual(response.status_code, requests.codes.created)
-
- # test service-create for Eth service from xpdr to xpdr
- def test_11_create_eth_service1(self):
- url = ("{}/operations/org-openroadm-service:service-create"
- .format(self.restconf_baseurl))
- data = {
- "input": {