From: Christophe Betoule Date: Thu, 11 Mar 2021 09:26:08 +0000 (+0100) Subject: Functional test for pce 400G X-Git-Tag: 3.0.0~5^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=7c7d50955fe3ff0978f22f2dfc122b4a8619e10b;p=transportpce.git Functional test for pce 400G Tests the path computation request for a 400GE service between two 400G transponders JIRA: TRNSPRTPCE-372 Signed-off-by: Christophe Betoule Change-Id: I1432d92890771786eb01c658462ca1c3876c046c --- diff --git a/tests/sample_configs/honeynode-topo400G.json b/tests/sample_configs/honeynode-topo400G.json new file mode 100644 index 000000000..29b0e40c5 --- /dev/null +++ b/tests/sample_configs/honeynode-topo400G.json @@ -0,0 +1,949 @@ +{ + "network": [ + { + "network-id": "openroadm-topology", + "ietf-network-topology:link": [ + { + "link-id": "XPDR-C2-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP4-TXRX", + "source": { + "source-node": "XPDR-C2-XPDR1", + "source-tp": "XPDR1-NETWORK1" + }, + "org-openroadm-common-network:link-type": "XPONDER-OUTPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-PP4-TXRXtoXPDR-C2-XPDR1-XPDR1-NETWORK1", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-PP4-TXRX", + "dest-node": "ROADM-C1-SRG1" + } + }, + { + "link-id": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG2", + "source-tp": "DEG2-TTP-TXRX" + }, + "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG1-TTP-TXRX", + "dest-node": "ROADM-C1-DEG1" + }, + "org-openroadm-network-topology:OMS-attributes": { + "span": { + "auto-spanloss": true, + "spanloss-current": 12, + "engineered-spanloss": 12.2, + "spanloss-base": 11.4, + "link-concatenation": [ + { + "SRLG-Id": 0, + "fiber-type": "smf", + "pmd": 0.5, + "SRLG-length": 100000 + } + ] + } + } + }, + { + "link-id": "XPDR-C1-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP1-TXRX", + "source": { + "source-node": "XPDR-C1-XPDR1", + "source-tp": "XPDR1-NETWORK1" + }, + "org-openroadm-common-network:link-type": "XPONDER-OUTPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-PP1-TXRXtoXPDR-C1-XPDR1-XPDR1-NETWORK1", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-PP1-TXRX", + "dest-node": "ROADM-C1-SRG1" + } + }, + { + "link-id": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX", + "source": { + "source-node": "ROADM-C1-DEG1", + "source-tp": "DEG1-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "DROP-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-CP-TXRX", + "dest-node": "ROADM-C1-SRG1" + } + }, + { + "link-id": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX", + "source": { + "source-node": "ROADM-A1-SRG3", + "source-tp": "SRG3-CP-TXRX" + }, + "org-openroadm-common-network:link-type": "ADD-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG1-CTP-TXRX", + "dest-node": "ROADM-A1-DEG1" + } + }, + { + "link-id": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX", + "source": { + "source-node": "ROADM-A1-SRG3", + "source-tp": "SRG3-CP-TXRX" + }, + "org-openroadm-common-network:link-type": "ADD-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG2-CTP-TXRX", + "dest-node": "ROADM-A1-DEG2" + } + }, + { + "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG1", + "source-tp": "DEG1-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "DROP-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG3-CP-TXRX", + "dest-node": "ROADM-A1-SRG3" + } + }, + { + "link-id": "ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1", + "source": { + "source-node": "ROADM-A1-SRG1", + "source-tp": "SRG1-PP1-TXRX" + }, + "org-openroadm-common-network:link-type": "XPONDER-INPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "XPDR1-NETWORK1", + "dest-node": "XPDR-A1-XPDR1" + } + }, + { + "link-id": "ROADM-A1-SRG1-SRG1-PP4-TXRXtoXPDR-A2-XPDR1-XPDR1-NETWORK1", + "source": { + "source-node": "ROADM-A1-SRG1", + "source-tp": "SRG1-PP4-TXRX" + }, + "org-openroadm-common-network:link-type": "XPONDER-INPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "XPDR-A2-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP4-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "XPDR1-NETWORK1", + "dest-node": "XPDR-A2-XPDR1" + } + }, + { + "link-id": "ROADM-C1-DEG1-DEG1-TTP-TXRXtoROADM-A1-DEG2-DEG2-TTP-TXRX", + "source": { + "source-node": "ROADM-C1-DEG1", + "source-tp": "DEG1-TTP-TXRX" + }, + "org-openroadm-common-network:link-type": "ROADM-TO-ROADM", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-TTP-TXRXtoROADM-C1-DEG1-DEG1-TTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG2-TTP-TXRX", + "dest-node": "ROADM-A1-DEG2" + }, + "org-openroadm-network-topology:OMS-attributes": { + "span": { + "auto-spanloss": true, + "spanloss-current": 12, + "engineered-spanloss": 12.2, + "spanloss-base": 11.4, + "link-concatenation": [ + { + "SRLG-Id": 0, + "fiber-type": "smf", + "pmd": 0.5, + "SRLG-length": 100000 + } + ] + } + } + }, + { + "link-id": "ROADM-C1-SRG1-SRG1-PP4-TXRXtoXPDR-C2-XPDR1-XPDR1-NETWORK1", + "source": { + "source-node": "ROADM-C1-SRG1", + "source-tp": "SRG1-PP4-TXRX" + }, + "org-openroadm-common-network:link-type": "XPONDER-INPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "XPDR-C2-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP4-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "XPDR1-NETWORK1", + "dest-node": "XPDR-C2-XPDR1" + } + }, + { + "link-id": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX", + "source": { + "source-node": "ROADM-C1-DEG2", + "source-tp": "DEG2-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "EXPRESS-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG1-CTP-TXRX", + "dest-node": "ROADM-C1-DEG1" + } + }, + { + "link-id": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX", + "source": { + "source-node": "ROADM-C1-DEG2", + "source-tp": "DEG2-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "DROP-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-CP-TXRX", + "dest-node": "ROADM-C1-SRG1" + } + }, + { + "link-id": "XPDR-A2-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP4-TXRX", + "source": { + "source-node": "XPDR-A2-XPDR1", + "source-tp": "XPDR1-NETWORK1" + }, + "org-openroadm-common-network:link-type": "XPONDER-OUTPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-PP4-TXRXtoXPDR-A2-XPDR1-XPDR1-NETWORK1", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-PP4-TXRX", + "dest-node": "ROADM-A1-SRG1" + } + }, + { + "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG2", + "source-tp": "DEG2-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "DROP-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-CP-TXRX", + "dest-node": "ROADM-A1-SRG1" + } + }, + { + "link-id": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX", + "source": { + "source-node": "ROADM-C1-DEG1", + "source-tp": "DEG1-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "EXPRESS-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG2-CTP-TXRX", + "dest-node": "ROADM-C1-DEG2" + } + }, + { + "link-id": "XPDR-A1-XPDR1-XPDR1-NETWORK1toROADM-A1-SRG1-SRG1-PP1-TXRX", + "source": { + "source-node": "XPDR-A1-XPDR1", + "source-tp": "XPDR1-NETWORK1" + }, + "org-openroadm-common-network:link-type": "XPONDER-OUTPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-PP1-TXRXtoXPDR-A1-XPDR1-XPDR1-NETWORK1", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-PP1-TXRX", + "dest-node": "ROADM-A1-SRG1" + } + }, + { + "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG2", + "source-tp": "DEG2-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "EXPRESS-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG1-CTP-TXRX", + "dest-node": "ROADM-A1-DEG1" + } + }, + { + "link-id": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX", + "source": { + "source-node": "ROADM-A1-SRG1", + "source-tp": "SRG1-CP-TXRX" + }, + "org-openroadm-common-network:link-type": "ADD-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG1-CTP-TXRX", + "dest-node": "ROADM-A1-DEG1" + } + }, + { + "link-id": "ROADM-C1-SRG1-SRG1-PP1-TXRXtoXPDR-C1-XPDR1-XPDR1-NETWORK1", + "source": { + "source-node": "ROADM-C1-SRG1", + "source-tp": "SRG1-PP1-TXRX" + }, + "org-openroadm-common-network:link-type": "XPONDER-INPUT", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "XPDR-C1-XPDR1-XPDR1-NETWORK1toROADM-C1-SRG1-SRG1-PP1-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "XPDR1-NETWORK1", + "dest-node": "XPDR-C1-XPDR1" + } + }, + { + "link-id": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG3-SRG3-CP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG2", + "source-tp": "DEG2-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "DROP-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG3-SRG3-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG3-CP-TXRX", + "dest-node": "ROADM-A1-SRG3" + } + }, + { + "link-id": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX", + "source": { + "source-node": "ROADM-A1-SRG1", + "source-tp": "SRG1-CP-TXRX" + }, + "org-openroadm-common-network:link-type": "ADD-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG2-CTP-TXRX", + "dest-node": "ROADM-A1-DEG2" + } + }, + { + "link-id": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG2-DEG2-CTP-TXRX", + "source": { + "source-node": "ROADM-C1-SRG1", + "source-tp": "SRG1-CP-TXRX" + }, + "org-openroadm-common-network:link-type": "ADD-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG2-DEG2-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG2-CTP-TXRX", + "dest-node": "ROADM-C1-DEG2" + } + }, + { + "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-SRG1-SRG1-CP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG1", + "source-tp": "DEG1-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "DROP-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-SRG1-SRG1-CP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "SRG1-CP-TXRX", + "dest-node": "ROADM-A1-SRG1" + } + }, + { + "link-id": "ROADM-C1-SRG1-SRG1-CP-TXRXtoROADM-C1-DEG1-DEG1-CTP-TXRX", + "source": { + "source-node": "ROADM-C1-SRG1", + "source-tp": "SRG1-CP-TXRX" + }, + "org-openroadm-common-network:link-type": "ADD-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-C1-DEG1-DEG1-CTP-TXRXtoROADM-C1-SRG1-SRG1-CP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG1-CTP-TXRX", + "dest-node": "ROADM-C1-DEG1" + } + }, + { + "link-id": "ROADM-A1-DEG1-DEG1-CTP-TXRXtoROADM-A1-DEG2-DEG2-CTP-TXRX", + "source": { + "source-node": "ROADM-A1-DEG1", + "source-tp": "DEG1-CTP-TXRX" + }, + "org-openroadm-common-network:link-type": "EXPRESS-LINK", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:opposite-link": "ROADM-A1-DEG2-DEG2-CTP-TXRXtoROADM-A1-DEG1-DEG1-CTP-TXRX", + "org-openroadm-common-network:administrative-state": "inService", + "destination": { + "dest-tp": "DEG2-CTP-TXRX", + "dest-node": "ROADM-A1-DEG2" + } + } + ], + "network-types": { + "org-openroadm-common-network:openroadm-common-network": {} + }, + "node": [ + { + "node-id": "ROADM-A1-SRG3", + "org-openroadm-common-network:node-type": "SRG", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG3-PP3-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG3-PP2-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG3-CP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-CP" + }, + { + "tp-id": "SRG3-PP1-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG3-PP4-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeA" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-A1" + } + ] + }, + { + "node-id": "XPDR-A2-XPDR1", + "org-openroadm-common-network:node-type": "XPONDER", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR1-CLIENT1", + "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-CLIENT" + }, + { + "tp-id": "XPDR1-NETWORK1", + "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1", + "org-openroadm-network-topology:xpdr-network-attributes": { + "tail-equipment-id": "ROADM-A1-SRG1--SRG1-PP4-TXRX" + }, + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-NETWORK" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeA" + }, + { + "network-ref": "openroadm-network", + "node-ref": "XPDR-A2" + } + ] + }, + { + "node-id": "XPDR-C2-XPDR1", + "org-openroadm-common-network:node-type": "XPONDER", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR1-CLIENT1", + "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-CLIENT" + }, + { + "tp-id": "XPDR1-NETWORK1", + "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1", + "org-openroadm-network-topology:xpdr-network-attributes": { + "tail-equipment-id": "ROADM-C1-SRG1--SRG1-PP4-TXRX" + }, + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-NETWORK" + } + ], + "supporting-node": [ + { + "network-ref": "openroadm-network", + "node-ref": "XPDR-C2" + }, + { + "network-ref": "clli-network", + "node-ref": "NodeC" + } + ] + }, + { + "node-id": "XPDR-C1-XPDR1", + "org-openroadm-common-network:node-type": "XPONDER", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR1-CLIENT1", + "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-CLIENT" + }, + { + "tp-id": "XPDR1-CLIENT2", + "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK2", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-CLIENT" + }, + { + "tp-id": "XPDR1-NETWORK2", + "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT2", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-NETWORK" + }, + { + "tp-id": "XPDR1-NETWORK1", + "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1", + "org-openroadm-network-topology:xpdr-network-attributes": { + "tail-equipment-id": "ROADM-C1-SRG1--SRG1-PP1-TXRX" + }, + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-NETWORK" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeC" + }, + { + "network-ref": "openroadm-network", + "node-ref": "XPDR-C1" + } + ] + }, + { + "node-id": "ROADM-C1-SRG1", + "org-openroadm-common-network:node-type": "SRG", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG1-PP4-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-PP1-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-PP2-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-PP3-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-CP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-CP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeC" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-C1" + } + ] + }, + { + "node-id": "ROADM-A1-SRG1", + "org-openroadm-common-network:node-type": "SRG", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:srg-attributes": { + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "SRG1-PP4-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-PP1-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-PP2-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-PP3-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-PP" + }, + { + "tp-id": "SRG1-CP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "SRG-TXRX-CP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeA" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-A1" + } + ] + }, + { + "node-id": "ROADM-A1-DEG1", + "org-openroadm-common-network:node-type": "DEGREE", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:degree-attributes": { + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-CTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP" + }, + { + "tp-id": "DEG1-TTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeA" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-A1" + } + ] + }, + { + "node-id": "ROADM-A1-DEG2", + "org-openroadm-common-network:node-type": "DEGREE", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:degree-attributes": { + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG2-TTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP" + }, + { + "tp-id": "DEG2-CTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeA" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-A1" + } + ] + }, + { + "node-id": "XPDR-A1-XPDR1", + "org-openroadm-common-network:node-type": "XPONDER", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "ietf-network-topology:termination-point": [ + { + "tp-id": "XPDR1-CLIENT1", + "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK1", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-CLIENT" + }, + { + "tp-id": "XPDR1-CLIENT2", + "transportpce-topology:associated-connection-map-port": "XPDR1-NETWORK2", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-CLIENT" + }, + { + "tp-id": "XPDR1-NETWORK2", + "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT2", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-NETWORK" + }, + { + "tp-id": "XPDR1-NETWORK1", + "transportpce-topology:associated-connection-map-port": "XPDR1-CLIENT1", + "org-openroadm-network-topology:xpdr-network-attributes": { + "tail-equipment-id": "ROADM-A1-SRG1--SRG1-PP1-TXRX" + }, + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "XPONDER-NETWORK" + } + ], + "supporting-node": [ + { + "network-ref": "openroadm-network", + "node-ref": "XPDR-A1" + }, + { + "network-ref": "clli-network", + "node-ref": "NodeA" + } + ] + }, + { + "node-id": "ROADM-C1-DEG1", + "org-openroadm-common-network:node-type": "DEGREE", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:degree-attributes": { + "degree-number": 1, + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG1-CTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP" + }, + { + "tp-id": "DEG1-TTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeC" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-C1" + } + ] + }, + { + "node-id": "ROADM-C1-DEG2", + "org-openroadm-common-network:node-type": "DEGREE", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-network-topology:degree-attributes": { + "degree-number": 2, + "avail-freq-maps": [ + { + "map-name": "cband", + "freq-map-granularity": 6.25, + "start-edge-freq": 191.325, + "effective-bits": 768, + "freq-map": "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } + ] + }, + "ietf-network-topology:termination-point": [ + { + "tp-id": "DEG2-TTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-TTP" + }, + { + "tp-id": "DEG2-CTP-TXRX", + "org-openroadm-common-network:operational-state": "inService", + "org-openroadm-common-network:administrative-state": "inService", + "org-openroadm-common-network:tp-type": "DEGREE-TXRX-CTP" + } + ], + "supporting-node": [ + { + "network-ref": "clli-network", + "node-ref": "NodeC" + }, + { + "network-ref": "openroadm-network", + "node-ref": "ROADM-C1" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/tests/sample_configs/pce_portmapping_71.json b/tests/sample_configs/pce_portmapping_71.json new file mode 100644 index 000000000..758683415 --- /dev/null +++ b/tests/sample_configs/pce_portmapping_71.json @@ -0,0 +1,291 @@ +{ + "network": { + "nodes": [ + { + "node-id": "ROADM-C1", + "node-info": { + "node-type": "rdm", + "node-model": "model2", + "node-ip-address": "127.0.0.13", + "node-clli": "NodeC", + "openroadm-version": "2.2.1", + "node-vendor": "vendorA" + }, + "cp-to-degree": [ + { + "circuit-pack-name": "1/0/ETH-PLUG", + "degree-number": 1, + "interface-name": "1GE-interface-1" + }, + { + "circuit-pack-name": "2/0", + "degree-number": 2, + "interface-name": "1GE-interface-2" + }, + { + "circuit-pack-name": "2/0/ETH-PLUG", + "degree-number": 2, + "interface-name": "1GE-interface-2" + }, + { + "circuit-pack-name": "1/0", + "degree-number": 1, + "interface-name": "1GE-interface-1" + } + ], + "mapping": [ + { + "logical-connection-point": "SRG1-PP3-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C3" + }, + { + "logical-connection-point": "SRG1-PP1-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C1" + }, + { + "logical-connection-point": "DEG1-TTP-TXRX", + "supporting-oms": "OMS-DEG1-TTP-TXRX", + "supporting-circuit-pack-name": "1/0", + "supporting-ots": "OTS-DEG1-TTP-TXRX", + "port-direction": "bidirectional", + "supporting-port": "L1" + }, + { + "logical-connection-point": "SRG1-PP2-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C2" + }, + { + "logical-connection-point": "SRG1-PP4-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C4" + }, + { + "logical-connection-point": "DEG2-TTP-TXRX", + "supporting-circuit-pack-name": "2/0", + "port-direction": "bidirectional", + "supporting-port": "L1" + } + ], + "mc-capabilities": [ + { + "mc-node-name": "DEG2-TTP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "DEG1-TTP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "SRG1-PP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + } + ] + }, + { + "node-id": "XPDR-A2", + "mapping": [ + { + "logical-connection-point": "XPDR1-NETWORK1", + "supporting-circuit-pack-name": "1/0/1-PLUG-NET", + "supported-interface-capability": [ + "org-openroadm-port-types:if-OTUCn-ODUCn" + ], + "lcp-hash-val": "AIGiVAQ4gDil", + "port-direction": "bidirectional", + "xponder-type": "tpdr", + "supporting-port": "L1", + "port-qual": "xpdr-network", + "connection-map-lcp": "XPDR1-CLIENT1" + }, + { + "logical-connection-point": "XPDR1-CLIENT1", + "supporting-circuit-pack-name": "1/0/1-PLUG-CLIENT", + "supported-interface-capability": [ + "org-openroadm-port-types:if-400GE" + ], + "lcp-hash-val": "AODABTVSOHH0", + "port-direction": "bidirectional", + "supporting-port": "C1", + "port-qual": "xpdr-client", + "connection-map-lcp": "XPDR1-NETWORK1" + } + ], + "node-info": { + "node-type": "xpdr", + "node-model": "model2", + "node-ip-address": "1.2.3.4", + "node-clli": "NodeA", + "openroadm-version": "7.1.0", + "node-vendor": "vendorA" + } + }, + { + "node-id": "XPDR-C2", + "mapping": [ + { + "logical-connection-point": "XPDR1-NETWORK1", + "supporting-circuit-pack-name": "1/0/1-PLUG-NET", + "supported-interface-capability": [ + "org-openroadm-port-types:if-OTUCn-ODUCn" + ], + "lcp-hash-val": "ZbICgmaBrJM=", + "port-direction": "bidirectional", + "xponder-type": "tpdr", + "supporting-port": "L1", + "port-qual": "xpdr-network", + "connection-map-lcp": "XPDR1-CLIENT1" + }, + { + "logical-connection-point": "XPDR1-CLIENT1", + "supporting-circuit-pack-name": "1/0/1-PLUG-CLIENT", + "supported-interface-capability": [ + "org-openroadm-port-types:if-400GE" + ], + "lcp-hash-val": "M5cViLS5z3o=", + "port-direction": "bidirectional", + "supporting-port": "C1", + "port-qual": "xpdr-client", + "connection-map-lcp": "XPDR1-NETWORK1" + } + ], + "node-info": { + "node-type": "xpdr", + "node-model": "model2", + "node-ip-address": "1.2.3.4", + "node-clli": "NodeC", + "openroadm-version": "7.1.0", + "node-vendor": "vendorA" + } + }, + { + "node-id": "ROADM-A1", + "node-info": { + "node-type": "rdm", + "node-model": "model2", + "node-ip-address": "127.0.0.11", + "node-clli": "NodeA", + "openroadm-version": "2.2.1", + "node-vendor": "vendorA" + }, + "cp-to-degree": [ + { + "circuit-pack-name": "1/0/ETH-PLUG", + "degree-number": 1, + "interface-name": "1GE-interface-1" + }, + { + "circuit-pack-name": "2/0", + "degree-number": 2, + "interface-name": "1GE-interface-2" + }, + { + "circuit-pack-name": "2/0/ETH-PLUG", + "degree-number": 2, + "interface-name": "1GE-interface-2" + }, + { + "circuit-pack-name": "1/0", + "degree-number": 1, + "interface-name": "1GE-interface-1" + } + ], + "mapping": [ + { + "logical-connection-point": "SRG1-PP3-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C3" + }, + { + "logical-connection-point": "SRG3-PP2-TXRX", + "supporting-circuit-pack-name": "5/0", + "port-direction": "bidirectional", + "supporting-port": "C2" + }, + { + "logical-connection-point": "SRG1-PP1-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C1" + }, + { + "logical-connection-point": "DEG1-TTP-TXRX", + "supporting-circuit-pack-name": "1/0", + "port-direction": "bidirectional", + "supporting-port": "L1" + }, + { + "logical-connection-point": "SRG3-PP1-TXRX", + "supporting-circuit-pack-name": "5/0", + "port-direction": "bidirectional", + "supporting-port": "C1" + }, + { + "logical-connection-point": "SRG1-PP2-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C2" + }, + { + "logical-connection-point": "SRG1-PP4-TXRX", + "supporting-circuit-pack-name": "3/0", + "port-direction": "bidirectional", + "supporting-port": "C4" + }, + { + "logical-connection-point": "SRG3-PP4-TXRX", + "supporting-circuit-pack-name": "5/0", + "port-direction": "bidirectional", + "supporting-port": "C4" + }, + { + "logical-connection-point": "SRG3-PP3-TXRX", + "supporting-circuit-pack-name": "5/0", + "port-direction": "bidirectional", + "supporting-port": "C3" + }, + { + "logical-connection-point": "DEG2-TTP-TXRX", + "supporting-oms": "OMS-DEG2-TTP-TXRX", + "supporting-circuit-pack-name": "2/0", + "supporting-ots": "OTS-DEG2-TTP-TXRX", + "port-direction": "bidirectional", + "supporting-port": "L1" + } + ], + "mc-capabilities": [ + { + "mc-node-name": "DEG2-TTP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "DEG1-TTP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "SRG3-PP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + }, + { + "mc-node-name": "SRG1-PP", + "center-freq-granularity": 50, + "slot-width-granularity": 50 + } + ] + } + ] + } +} \ No newline at end of file diff --git a/tests/transportpce_tests/7.1/common b/tests/transportpce_tests/7.1/common new file mode 120000 index 000000000..83323993b --- /dev/null +++ b/tests/transportpce_tests/7.1/common @@ -0,0 +1 @@ +../common/ \ No newline at end of file diff --git a/tests/transportpce_tests/7.1/simulators.py b/tests/transportpce_tests/7.1/simulators.py new file mode 100644 index 000000000..5bdbbb579 --- /dev/null +++ b/tests/transportpce_tests/7.1/simulators.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python +############################################################################## +# Copyright (c) 2020 Orange, Inc. and others. All rights reserved. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +import os + +SIMS = {} + +HONEYNODE_EXECUTABLE = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "honeynode", "7.1", "honeynode-simulator", "honeycomb-tpce") +SAMPLES_DIRECTORY = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "openroadm", "7.1") diff --git a/tests/transportpce_tests/7.1/test_pce_400G.py b/tests/transportpce_tests/7.1/test_pce_400G.py new file mode 100644 index 000000000..10fb918af --- /dev/null +++ b/tests/transportpce_tests/7.1/test_pce_400G.py @@ -0,0 +1,128 @@ +#!/usr/bin/env python +############################################################################## +# Copyright (c) 2021 Orange, Inc. and others. All rights reserved. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +# pylint: disable=no-member +# pylint: disable=too-many-public-methods + +import unittest +import os +import sys +import time +import requests +from common import test_utils + + +class TransportPCE400Gtesting(unittest.TestCase): + + simple_topo_bi_dir_data = None + port_mapping_data = None + processes = None + + @classmethod + def setUpClass(cls): + try: + sample_files_parsed = False + TOPO_BI_DIR_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "honeynode-topo400G.json") + with open(TOPO_BI_DIR_FILE, 'r') as topo_bi_dir: + cls.simple_topo_bi_dir_data = topo_bi_dir.read() + + PORT_MAPPING_FILE = os.path.join(os.path.dirname(os.path.realpath(__file__)), + "..", "..", "sample_configs", "pce_portmapping_71.json") + with open(PORT_MAPPING_FILE, 'r') as port_mapping: + cls.port_mapping_data = port_mapping.read() + sample_files_parsed = True + except PermissionError as err: + print("Permission Error when trying to read sample files\n", err) + sys.exit(2) + except FileNotFoundError as err: + print("File Not found Error when trying to read sample files\n", err) + sys.exit(2) + except: + print("Unexpected error when trying to read sample files\n", sys.exc_info()[0]) + sys.exit(2) + finally: + if sample_files_parsed: + print("sample files content loaded") + cls.processes = test_utils.start_tpce() + + @classmethod + def tearDownClass(cls): + # pylint: disable=not-an-iterable + for process in cls.processes: + test_utils.shutdown_process(process) + print("all processes killed") + + def setUp(self): # instruction executed before each test method + print("execution of {}".format(self.id().split(".")[-1])) + time.sleep(1) + + # Load port mapping + def test_01_load_port_mapping(self): + response = test_utils.put_jsonrequest(test_utils.URL_FULL_PORTMAPPING, self.port_mapping_data) + self.assertEqual(response.status_code, requests.codes.ok) + time.sleep(2) + + # Load simple bidirectional topology + def test_02_load_simple_topology_bi(self): + response = test_utils.put_jsonrequest(test_utils.URL_CONFIG_ORDM_TOPO, self.simple_topo_bi_dir_data) + self.assertEqual(response.status_code, requests.codes.ok) + time.sleep(2) + + # Path Computation success + def test_03_path_computation_xpdr_bi(self): + response = test_utils.path_computation_request("request-1", "service-1", + {"node-id": "XPDR-A2", "service-rate": "400", + "service-format": "Ethernet", "clli": "nodeA"}, + {"node-id": "XPDR-C2", "service-rate": "400", + "service-format": "Ethernet", "clli": "nodeC"}) + self.assertEqual(response.status_code, requests.codes.ok) + res = response.json() + self.assertIn('Path is calculated', + res['output']['configuration-response-common']['response-message']) + + self.assertEqual(1, res['output']['response-parameters']['path-description'] + ['aToZ-direction']['aToZ-wavelength-number']) + self.assertEqual(400, res['output']['response-parameters']['path-description'] + ['aToZ-direction']['rate']) + self.assertEqual(196.0375, res['output']['response-parameters']['path-description'] + ['aToZ-direction']['aToZ-min-frequency']) + self.assertEqual(196.12500, res['output']['response-parameters']['path-description'] + ['aToZ-direction']['aToZ-max-frequency']) + self.assertEqual('dp-qam16', res['output']['response-parameters']['path-description'] + ['aToZ-direction']['modulation-format']) + + self.assertEqual(1, res['output']['response-parameters']['path-description'] + ['zToA-direction']['zToA-wavelength-number']) + self.assertEqual(400, res['output']['response-parameters']['path-description'] + ['zToA-direction']['rate']) + self.assertEqual(196.0375, res['output']['response-parameters']['path-description'] + ['zToA-direction']['zToA-min-frequency']) + self.assertEqual(196.12500, res['output']['response-parameters']['path-description'] + ['zToA-direction']['zToA-max-frequency']) + self.assertEqual('dp-qam16', res['output']['response-parameters']['path-description'] + ['zToA-direction']['modulation-format']) + time.sleep(5) + + # Test deleted complex topology + def test_04_test_topology_complex_deleted(self): + response = test_utils.get_ordm_topo_request("node/XPONDER-3-2") + self.assertEqual(response.status_code, requests.codes.conflict) + time.sleep(1) + + # Delete portmapping + def test_05_delete_port_mapping(self): + response = test_utils.delete_request(test_utils.URL_FULL_PORTMAPPING) + self.assertEqual(response.status_code, requests.codes.ok) + time.sleep(2) + + +if __name__ == "__main__": + unittest.main(verbosity=2) diff --git a/tests/transportpce_tests/common/test_utils.py b/tests/transportpce_tests/common/test_utils.py index 1026df7e0..4e1044ebe 100644 --- a/tests/transportpce_tests/common/test_utils.py +++ b/tests/transportpce_tests/common/test_utils.py @@ -190,6 +190,12 @@ def put_xmlrequest(url, data): headers=TYPE_APPLICATION_XML, auth=(ODL_LOGIN, ODL_PWD)) +def put_jsonrequest(url, data): + return requests.request( + "PUT", url.format(RESTCONF_BASE_URL), + data=data, + headers=TYPE_APPLICATION_JSON, + auth=(ODL_LOGIN, ODL_PWD)) def rawput_request(url, data): return requests.request( diff --git a/tox.ini b/tox.ini index 037d646ab..1b29d6e83 100644 --- a/tox.ini +++ b/tox.ini @@ -19,23 +19,23 @@ whitelist_externals = sh changedir={toxinidir}/tests commands = #install maven and JDK11 on the Gate since they are not there by default - {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,gnpy}: - sh -c "which mvn >/dev/null || ./installMavenCentOS.sh" + {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,pce400g,gnpy}: - sh -c "which mvn >/dev/null || ./installMavenCentOS.sh" #install honeynode 1.2.1 simulators {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end}: - sh -c "./install_honeynode.sh 1.2.1" #patch OLM constant to speed up tests, unnecessary for PCE {py3,portmapping,topoPortMapping,rspn,topology,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otn-topology,olm221,otnend2end,end2end221,tapi221,nbinotifications}: - sh -c "sed -i'_' 's@=.*//#FUNCTESTVAL=@=@g' ../olm/src/main/java/org/opendaylight/transportpce/olm/util/OlmUtils.java" #build controller, source JDK_JAVA_OPTIONS to remove illegal reflective acces warnings introduced by Java11 - {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,gnpy,nbinotifications}: - sh -c ". $PWD/reflectwarn.sh && cd .. && mvn clean install -s tests/odl_settings.xml -DskipTests -Dmaven.javadoc.skip=true -Dodlparent.spotbugs.skip -Dodlparent.checkstyle.skip" + {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,pce400g,gnpy,nbinotifications}: - sh -c ". $PWD/reflectwarn.sh && cd .. && mvn clean install -s tests/odl_settings.xml -DskipTests -Dmaven.javadoc.skip=true -Dodlparent.spotbugs.skip -Dodlparent.checkstyle.skip" {py3,portmapping,topoPortMapping,rspn,topology,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otn-topology,olm221,otnend2end,end2end221,tapi221,nbinotifications}: - sh -c "mv ../olm/src/main/java/org/opendaylight/transportpce/olm/util/OlmUtils.java_ ../olm/src/main/java/org/opendaylight/transportpce/olm/util/OlmUtils.java" #patch Karaf exec for the same reason at runtime - {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,gnpy,nbinotifications}: - sh -c "sed -i'_' 's@!/bin/sh@!/bin/sh\'$'\n. $(dirname $0)/../../../../tests/reflectwarn.sh@' ../karaf/target/assembly/bin/karaf" + {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,pce400g,gnpy,nbinotifications}: - sh -c "sed -i'_' 's@!/bin/sh@!/bin/sh\'$'\n. $(dirname $0)/../../../../tests/reflectwarn.sh@' ../karaf/target/assembly/bin/karaf" # the following command would be the straight and right way to support both BSD and GNU sed versions # sh -c "sed -i'_' '1 a\'$'\n. \$(dirname \$0)/\.\./\.\./\.\./\.\./tests/reflectwarn.sh\n' ../karaf/target/assembly/bin/karaf" # but tox reinterprets the quotes as # sh -c 'sed -i'"'"'_'"'"' '"'"'1 a\'"'"'$'"'"'\n. \$(dirname \$0)/\.\./\.\./\.\./\.\./tests/reflectwarn.sh\n'"'"' ../karaf/target/assembly/bin/karaf' # ,what results in an unexpected different formating (with a $ on the second line and the dot on the third) #build Lighty if needed - {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,flexgrid,olm221,tapi221,otnend2end,end2end221,gnpy,nbinotifications}: - sh -c 'if [ "$USE_LIGHTY" = "True" ]; then (cd ../lighty && ./build.sh); fi' + {py3,portmapping,topoPortMapping,rspn,topology,pce,olm,end2end,portmapping221,rspn221,otnrenderer,otnshrenderer,topology221,otntopology,olm221,tapi221,otnend2end,end2end221,pce400g,gnpy,nbinotifications}: - sh -c 'if [ "$USE_LIGHTY" = "True" ]; then (cd ../lighty && ./build.sh); fi' #run 1.2.1 functional tests {py3,portmapping}: nosetests --with-xunit transportpce_tests/1.2.1/test_portmapping.py {py3,topoPortMapping}: nosetests --with-xunit transportpce_tests/1.2.1/test_topo_portmapping.py @@ -57,6 +57,8 @@ commands = {py3,olm221}: nosetests --with-xunit transportpce_tests/2.2.1/test_olm.py {py3,tapi221}: nosetests --with-xunit transportpce_tests/2.2.1/test_tapi.py {py3,otnend2end}: nosetests --with-xunit transportpce_tests/2.2.1/test_otn_end2end.py +#run 7.1 functional tests + {py3,pce400g}: nosetests --with-xunit transportpce_tests/7.1/test_pce_400G.py {py3,end2end}: nosetests --with-xunit transportpce_tests/1.2.1/test_end2end.py {py3,end2end221}: nosetests --with-xunit transportpce_tests/2.2.1/test_end2end.py #{gnpy}: - sudo docker pull atriki/gnpyrest:v1.2