Update portmapping functional tests 49/74649/5
authorGilles Thouenon <gilles.thouenon@orange.com>
Wed, 18 Jul 2018 09:43:03 +0000 (11:43 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Fri, 14 Sep 2018 14:04:11 +0000 (16:04 +0200)
-replace testtool by honeycomb netconf node simulator for this test
suite
-adapt initial node configuration (new SRG for ROADM, different logical
connection point values for XPDR configuration)
-complement XPDR test configuration
-rationalize tox configuration accordingly

JIRA: TRNSPRTPCE-10
JIRA: TRNSPRTPCE-22
Change-Id: I70ccf0f53bf3bad4655888f3c4739be1aa628d99
Signed-off-by: Gilles Thouenon <gilles.thouenon@orange.com>
Co-authored-by: Christophe Betoule <christophe.betoule@orange.com>
tests/build.sh [deleted file]
tests/buildHoneynode.sh [new file with mode: 0755]
tests/sample_configs/ord_2.1/oper-ROADMA.xml
tests/sample_configs/ord_2.1/oper-XPDRA.xml
tests/tox.ini
tests/transportpce_tests/test_portmapping.py

diff --git a/tests/build.sh b/tests/build.sh
deleted file mode 100755 (executable)
index 62efc76..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-# It may require to call git submodule update --init
-
-set -e
-
-yang="\
-mdsal/model/iana/iana-afn-safi/src/main/yang/iana-afn-safi@2013-07-04.yang \
-mdsal/model/ietf/ietf-inet-types-2013-07-15/src/main/yang/ietf-inet-types@2013-07-15.yang \
-mdsal/model/ietf/ietf-yang-types-20130715/src/main/yang/ietf-yang-types@2013-07-15.yang \
-netconf/netconf/models/ietf-netconf/src/main/yang/ietf-netconf@2011-06-01.yang \
-netconf/netconf/models/ietf-netconf-notifications/src/main/yang/ietf-netconf-notifications@2012-02-06.yang \
-netconf/netconf/models/ietf-netconf-notifications/src/main/yang/notifications@2008-07-14.yang"
-
-rm -rf netconf mdsal && git submodule update --init
-(cd netconf && patch -p1 < ../netconf.patch)
-
-(cd netconf/netconf/tools/netconf-testtool &&  mvn clean install -DskipTests)
-#Honeynode build
-(cd honeynode && mvn clean install -DskipTests -s fd_io_honeycomb_settings.xml)
-chmod +x ./honeynode/honeynode-distribution/target/honeynode-distribution-1.18.01-hc/honeynode-distribution-1.18.01/honeycomb-tpce
-rm -rf schemas && mkdir -p schemas
-#sample config for ordm 2.x are not yet ready
-#cp -r ../ordmodels/common/src/main/yang/org-openroadm-* schemas
-#cp -r ../ordmodels/device/src/main/yang/org-openroadm-* schemas
-#rm schemas/org-openroadm-otn-common-types@2016-10-14.yang
-#we expect that the ODL instance compiled with ordm 2.x models will be compatible with ordm 1.2.1 devices
-cp ordmodels_1.2.1/org-openroadm-* schemas
-cp ${yang} schemas
-mkdir -p transportpce_tests/log/
-
-exit $?
diff --git a/tests/buildHoneynode.sh b/tests/buildHoneynode.sh
new file mode 100755 (executable)
index 0000000..6b8827c
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+set -e
+
+(cd honeynode && mvn clean install -DskipTests -s fd_io_honeycomb_settings.xml)
+chmod +x ./honeynode/honeynode-distribution/target/honeynode-distribution-1.18.01-hc/honeynode-distribution-1.18.01/honeycomb-tpce
+
+exit $?
index a2938175cd92783c50a7b43841c70bf3ee761873..5ad4462b5462f09d659bcbbf50b251d7858dd22f 100644 (file)
         <logical-connection-point>SRG1-CP-TXRX</logical-connection-point>
       </ports>
     </circuit-packs>
+    <circuit-packs>
+      <circuit-pack-name>5/0</circuit-pack-name>
+      <circuit-pack-type>ADDDROP</circuit-pack-type>
+      <administrative-state>inService</administrative-state>
+      <vendor>vendorA</vendor>
+      <model>16CX4D</model>
+      <clei>cccccccc</clei>
+      <operational-state>inService</operational-state>
+      <equipment-state>not-reserved-available</equipment-state>
+      <circuit-pack-mode>NORMAL</circuit-pack-mode>
+      <shelf>4</shelf>
+      <slot>0</slot>
+      <subSlot>0</subSlot>
+      <ports>
+        <port-name>C1</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP1</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C10</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP10</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C11</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP11</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C12</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP12</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C13</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP13</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C14</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP14</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C15</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP15</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C16</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP16</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C2</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP2</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C3</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP3</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C4</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP4</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C5</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG5-PP5</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C6</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP6</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C7</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP7</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C8</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP8</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>C9</port-name>
+        <port-type>Client</port-type>
+        <port-qual>roadm-external</port-qual>
+        <port-wavelength-type>wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-PP9</logical-connection-point>
+        <roadm-port>
+          <port-power-capability-min-rx>-15.0</port-power-capability-min-rx>
+          <port-power-capability-min-tx>-28.0</port-power-capability-min-tx>
+          <port-power-capability-max-rx>10.0</port-power-capability-max-rx>
+          <port-power-capability-max-tx>15.0</port-power-capability-max-tx>
+        </roadm-port>
+      </ports>
+      <ports>
+        <port-name>AD-DEG1</port-name>
+        <port-type>Edge</port-type>
+        <port-qual>roadm-internal</port-qual>
+        <port-wavelength-type>multi-wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-CP-TXRX</logical-connection-point>
+      </ports>
+      <ports>
+        <port-name>AD-DEG2</port-name>
+        <port-type>Edge</port-type>
+        <port-qual>roadm-internal</port-qual>
+        <port-wavelength-type>multi-wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-CP-TXRX</logical-connection-point>
+      </ports>
+      <ports>
+        <port-name>AD-DEG3</port-name>
+        <port-type>Edge</port-type>
+        <port-qual>roadm-internal</port-qual>
+        <port-wavelength-type>multi-wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-CP-TXRX</logical-connection-point>
+      </ports>
+      <ports>
+        <port-name>AD-DEG4</port-name>
+        <port-type>Edge</port-type>
+        <port-qual>roadm-internal</port-qual>
+        <port-wavelength-type>multi-wavelength</port-wavelength-type>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <operational-state>inService</operational-state>
+        <logical-connection-point>SRG3-CP-TXRX</logical-connection-point>
+      </ports>
+    </circuit-packs>
     <interface>
       <name>oms-2/0/0/L1</name>
       <type xmlns:openROADM-if="http://org/openroadm/interfaces">openROADM-if:openROADMOpticalMultiplex</type>
         <circuit-pack-name>4/0</circuit-pack-name>
       </circuit-packs>
     </shared-risk-group>
+    <shared-risk-group>
+      <srg-number>3</srg-number>
+      <max-add-drop-ports>16</max-add-drop-ports>
+      <wavelengthDuplication>onePerSRG</wavelengthDuplication>
+      <circuit-packs>
+        <index>1</index>
+        <circuit-pack-name>5/0</circuit-pack-name>
+      </circuit-packs>
+    </shared-risk-group>
     <connection-map>
       <connection-map-number>1</connection-map-number>
       <source>
index ac31d67d59cfa12090b682e009d7e4bb30e08e57..1a9387fb79148ee9613038bcb2721e1143d8df7d 100644 (file)
       <cp-slots>
         <slot-name>1</slot-name>
         <label>1</label>
-        <provisioned-circuit-pack>1/0/1-PLUG-NET
-        </provisioned-circuit-pack>
+        <provisioned-circuit-pack>1/0/1-PLUG-NET</provisioned-circuit-pack>
       </cp-slots>
       <cp-slots>
         <slot-name>2</slot-name>
         <label>2</label>
-        <provisioned-circuit-pack>1/0/2-PLUG-CLIENT
-        </provisioned-circuit-pack>
+        <provisioned-circuit-pack>1/0/2-PLUG-NET</provisioned-circuit-pack>
+      </cp-slots>
+      <cp-slots>
+        <slot-name>C1</slot-name>
+        <label>C1</label>
+        <provisioned-circuit-pack>1/0/C1-PLUG-CLIENT</provisioned-circuit-pack>
+      </cp-slots>
+      <cp-slots>
+        <slot-name>C2</slot-name>
+        <label>C2</label>
+        <provisioned-circuit-pack>1/0/C2-PLUG-CLIENT</provisioned-circuit-pack>
+      </cp-slots>
+      <cp-slots>
+        <slot-name>C3</slot-name>
+        <label>C3</label>
+        <provisioned-circuit-pack>1/0/C3-PLUG-CLIENT</provisioned-circuit-pack>
+      </cp-slots>
+      <cp-slots>
+        <slot-name>C4</slot-name>
+        <label>C4</label>
+        <provisioned-circuit-pack>1/0/C4-PLUG-CLIENT</provisioned-circuit-pack>
+      </cp-slots>
+      <cp-slots>
+        <slot-name>PWR</slot-name>
+        <label>PWR</label>
+        <provisioned-circuit-pack>1/0/PWR</provisioned-circuit-pack>
       </cp-slots>
     </circuit-packs>
     <circuit-packs>
         <port-direction>bidirectional</port-direction>
         <circuit-id>XPDRA-NETWORK</circuit-id>
         <administrative-state>inService</administrative-state>
-        <logical-connection-point>NETWORK1</logical-connection-point>
+        <logical-connection-point>XPDR1-NETWORK1</logical-connection-point>
         <transponder-port>
         </transponder-port>
       </ports>
     </circuit-packs>
     <circuit-packs>
-      <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
+      <circuit-pack-name>1/0/2-PLUG-NET</circuit-pack-name>
+      <circuit-pack-type>pluggable</circuit-pack-type>
+      <administrative-state>inService</administrative-state>
+      <vendor>vendorA</vendor>
+      <model>CFP2</model>
+      <serial-id>ssss</serial-id>
+      <type>Coherent</type>
+      <product-code>T100N</product-code>
+      <manufacture-date>2017-04-01T00:00:00+00:00</manufacture-date>
+      <clei>tttt</clei>
+      <hardware-version>01</hardware-version>
+      <operational-state>inService</operational-state>
+      <circuit-pack-category>
+        <type>other</type>
+      </circuit-pack-category>
+      <equipment-state>not-reserved-available</equipment-state>
+      <circuit-pack-mode>NORMAL</circuit-pack-mode>
+      <shelf>1</shelf>
+      <slot>0</slot>
+      <subSlot>2</subSlot>
+      <due-date>2017-04-14T15:56:10+00:00</due-date>
+      <parent-circuit-pack>
+        <circuit-pack-name>1/0</circuit-pack-name>
+        <cp-slot-name>2</cp-slot-name>
+      </parent-circuit-pack>
+      <ports>
+        <port-name>2</port-name>
+        <port-type>CFP2</port-type>
+        <port-qual>xpdr-network</port-qual>
+        <port-direction>bidirectional</port-direction>
+        <administrative-state>inService</administrative-state>
+        <logical-connection-point></logical-connection-point>
+        <transponder-port>
+        </transponder-port>
+      </ports>
+    </circuit-packs>
+    <circuit-packs>
+      <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
       <circuit-pack-type>pluggable</circuit-pack-type>
       <administrative-state>inService</administrative-state>
       <vendor>vendorA</vendor>
       <due-date>2017-04-14T15:56:10+00:00</due-date>
       <parent-circuit-pack>
         <circuit-pack-name>1/0</circuit-pack-name>
-        <cp-slot-name>2</cp-slot-name>
+        <cp-slot-name>C1</cp-slot-name>
       </parent-circuit-pack>
       <ports>
-        <port-name>1</port-name>
+        <port-name>C1</port-name>
         <port-type>QSFP28</port-type>
         <port-qual>xpdr-client</port-qual>
         <port-direction>bidirectional</port-direction>
-        <circuit-id>XPDRA-CLIENT</circuit-id>
+        <circuit-id>XPDRA-CLIENT1</circuit-id>
         <administrative-state>inService</administrative-state>
-        <logical-connection-point>CLIENT1</logical-connection-point>
+        <logical-connection-point>XPDR1-CLIENT1</logical-connection-point>
         <transponder-port>
         </transponder-port>
       </ports>
     </circuit-packs>
+    <circuit-packs>
+      <circuit-pack-name>1/0/C2-PLUG-CLIENT</circuit-pack-name>
+      <circuit-pack-type>pluggable</circuit-pack-type>
+      <administrative-state>inService</administrative-state>
+      <vendor>vendorA</vendor>
+      <model>QSFP28</model>
+      <serial-id>xxxx</serial-id>
+      <type>QSFP28</type>
+      <product-code>100GELR4</product-code>
+      <manufacture-date>2017-03-01T00:00:00+00:00</manufacture-date>
+      <clei>ccccc</clei>
+      <hardware-version>01</hardware-version>
+      <circuit-pack-category>
+        <type>other</type>
+      </circuit-pack-category>
+      <equipment-state>not-reserved-available</equipment-state>
+      <circuit-pack-mode>NORMAL</circuit-pack-mode>
+      <shelf>1</shelf>
+      <slot>0</slot>
+      <subSlot>2</subSlot>
+      <due-date>2017-04-14T15:56:10+00:00</due-date>
+      <parent-circuit-pack>
+        <circuit-pack-name>1/0</circuit-pack-name>
+        <cp-slot-name>C2</cp-slot-name>
+      </parent-circuit-pack>
+      <ports>
+        <port-name>C2</port-name>
+        <port-type>QSFP28</port-type>
+        <port-qual>xpdr-client</port-qual>
+        <port-direction>bidirectional</port-direction>
+        <circuit-id>XPDRA-CLIENT2</circuit-id>
+        <administrative-state>inService</administrative-state>
+        <logical-connection-point>XPDR-CLIENT2</logical-connection-point>
+        <transponder-port>
+        </transponder-port>
+      </ports>
+    </circuit-packs>
+    <circuit-packs>
+      <circuit-pack-name>1/0/C3-PLUG-CLIENT</circuit-pack-name>
+      <circuit-pack-type>pluggable</circuit-pack-type>
+      <administrative-state>inService</administrative-state>
+      <vendor>vendorA</vendor>
+      <model>QSFP28</model>
+      <serial-id>xxxx</serial-id>
+      <type>QSFP28</type>
+      <product-code>100GELR4</product-code>
+      <manufacture-date>2017-03-01T00:00:00+00:00</manufacture-date>
+      <clei>ccccc</clei>
+      <hardware-version>01</hardware-version>
+      <circuit-pack-category>
+        <type>other</type>
+      </circuit-pack-category>
+      <equipment-state>not-reserved-available</equipment-state>
+      <circuit-pack-mode>NORMAL</circuit-pack-mode>
+      <shelf>1</shelf>
+      <slot>0</slot>
+      <subSlot>2</subSlot>
+      <due-date>2017-04-14T15:56:10+00:00</due-date>
+      <parent-circuit-pack>
+        <circuit-pack-name>1/0</circuit-pack-name>
+        <cp-slot-name>C2</cp-slot-name>
+      </parent-circuit-pack>
+      <ports>
+        <port-name>C3</port-name>
+        <port-type>QSFP28</port-type>
+        <port-qual>xpdr-client</port-qual>
+        <port-direction>bidirectional</port-direction>
+        <circuit-id>XPDRA-CLIENT3</circuit-id>
+        <administrative-state>inService</administrative-state>
+        <logical-connection-point>XPDR1-CLIENT1</logical-connection-point>
+        <transponder-port>
+        </transponder-port>
+      </ports>
+    </circuit-packs>
+    <circuit-packs>
+      <circuit-pack-name>1/0/C4-PLUG-CLIENT</circuit-pack-name>
+      <circuit-pack-type>pluggable</circuit-pack-type>
+      <administrative-state>inService</administrative-state>
+      <vendor>vendorA</vendor>
+      <model>QSFP28</model>
+      <serial-id>xxxx</serial-id>
+      <type>QSFP28</type>
+      <product-code>100GELR4</product-code>
+      <manufacture-date>2017-03-01T00:00:00+00:00</manufacture-date>
+      <clei>ccccc</clei>
+      <hardware-version>01</hardware-version>
+      <circuit-pack-category>
+        <type>other</type>
+      </circuit-pack-category>
+      <equipment-state>not-reserved-available</equipment-state>
+      <circuit-pack-mode>NORMAL</circuit-pack-mode>
+      <shelf>1</shelf>
+      <slot>0</slot>
+      <subSlot>2</subSlot>
+      <due-date>2017-04-14T15:56:10+00:00</due-date>
+      <parent-circuit-pack>
+        <circuit-pack-name>1/0</circuit-pack-name>
+        <cp-slot-name>C4</cp-slot-name>
+      </parent-circuit-pack>
+      <ports>
+        <port-name>C4</port-name>
+        <port-type>QSFP28</port-type>
+        <port-qual>xpdr-client</port-qual>
+        <port-direction>bidirectional</port-direction>
+        <circuit-id>XPDRA-CLIENT4</circuit-id>
+        <administrative-state>inService</administrative-state>
+        <logical-connection-point></logical-connection-point>
+        <transponder-port>
+        </transponder-port>
+      </ports>
+    </circuit-packs>
+    <circuit-packs>
+      <circuit-pack-name>1/0/PWR</circuit-pack-name>
+      <product-code>abcd</product-code>
+      <circuit-pack-mode>NORMAL</circuit-pack-mode>
+      <equipment-state>not-reserved-available</equipment-state>
+      <due-date>2017-04-12T15:56:10+00:00</due-date>
+      <type>PWR</type>
+      <shelf>1</shelf>
+      <circuit-pack-category>
+        <type>powerSupply</type>
+      </circuit-pack-category>
+      <administrative-state>inService</administrative-state>
+      <circuit-pack-type>P001</circuit-pack-type>
+      <slot>0</slot>
+      <vendor>VENDORA</vendor>
+      <parent-circuit-pack>
+        <circuit-pack-name>1/0</circuit-pack-name>
+        <cp-slot-name>PWR</cp-slot-name>
+      </parent-circuit-pack>
+      <serial-id/>
+      <clei>xxxx</clei>
+      <operational-state>inService</operational-state>
+      <model>yyyy</model>
+      <subSlot>PWR</subSlot>
+    </circuit-packs>
     <wavelength-map>
       <wavelengths>
         <wavelength-number>1</wavelength-number>
       </wavelengths>
     </wavelength-map>
     <internal-link>
-      <internal-link-name>1/0/2-PLUG-CLIENT-to-1/0/1-PLUG-NET
+      <internal-link-name>1/0/C1-PLUG-CLIENT-to-1/0/1-PLUG-NET
       </internal-link-name>
       <source>
-        <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
+        <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
         <port-name>1</port-name>
       </source>
       <destination>
         <port-name>1</port-name>
       </destination>
     </internal-link>
+    <internal-link>
+      <internal-link-name>1/0/1-PLUG-NET-to-1/0/C1-PLUG-CLIENT
+      </internal-link-name>
+      <source>
+        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
+        <port-name>1</port-name>
+      </source>
+      <destination>
+        <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
+        <port-name>1</port-name>
+      </destination>
+    </internal-link>
+    <internal-link>
+      <internal-link-name>1/0/C3-PLUG-CLIENT-to-1/0/2-PLUG-NET
+      </internal-link-name>
+      <source>
+        <circuit-pack-name>1/0/C3-PLUG-CLIENT</circuit-pack-name>
+        <port-name>1</port-name>
+      </source>
+      <destination>
+        <circuit-pack-name>1/0/2-PLUG-NET</circuit-pack-name>
+        <port-name>1</port-name>
+      </destination>
+    </internal-link>
+    <internal-link>
+      <internal-link-name>1/0/2-PLUG-NET-to-1/0/C3-PLUG-CLIENT
+      </internal-link-name>
+      <source>
+        <circuit-pack-name>1/0/2-PLUG-NET</circuit-pack-name>
+        <port-name>1</port-name>
+      </source>
+      <destination>
+        <circuit-pack-name>1/0/C3-PLUG-CLIENT</circuit-pack-name>
+        <port-name>1</port-name>
+      </destination>
+    </internal-link>
     <connection-map>
       <connection-map-number>1</connection-map-number>
       <source>
-        <circuit-pack-name>1/0/2-PLUG-CLIENT</circuit-pack-name>
+        <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
         <port-name>1</port-name>
       </source>
       <destination>
         <port-name>1</port-name>
       </destination>
     </connection-map>
+    <connection-map>
+      <connection-map-number>2</connection-map-number>
+      <source>
+        <circuit-pack-name>1/0/1-PLUG-NET</circuit-pack-name>
+        <port-name>1</port-name>
+      </source>
+      <destination>
+        <circuit-pack-name>1/0/C1-PLUG-CLIENT</circuit-pack-name>
+        <port-name>1</port-name>
+      </destination>
+    </connection-map>
+    <connection-map>
+      <connection-map-number>3</connection-map-number>
+      <source>
+        <circuit-pack-name>1/0/C3-PLUG-CLIENT</circuit-pack-name>
+        <port-name>1</port-name>
+      </source>
+      <destination>
+        <circuit-pack-name>1/0/2-PLUG-NET</circuit-pack-name>
+        <port-name>1</port-name>
+      </destination>
+    </connection-map>
+    <connection-map>
+      <connection-map-number>4</connection-map-number>
+      <source>
+        <circuit-pack-name>1/0/2-PLUG-NET</circuit-pack-name>
+        <port-name>1</port-name>
+      </source>
+      <destination>
+        <circuit-pack-name>1/0/C3-PLUG-CLIENT</circuit-pack-name>
+        <port-name>1</port-name>
+      </destination>
+    </connection-map>
   </org-openroadm-device>
 </data>
index e20c076266114636a5a8a8e4689e93cbd3ae51b8..2c3b5636f2f550303632168b5ca9d92c6a5243f9 100644 (file)
@@ -10,8 +10,8 @@ deps =
 whitelist_externals = bash
 commands =
   {py27,portmapping,topology,pce}: bash -c "(cd .. && mvn clean install -DskipTests -Dmaven.javadoc.skip=true)"
-  {py27,portmapping}: ./build.sh
-  {topology,topoPortMapping}: ./buildTesttool.sh
+  {py27,topology,topoPortMapping}: ./buildTesttool.sh
+  {py27,portmapping}: ./buildHoneynode.sh
   #py27: nosetests --with-xunit transportpce_tests/
   {py27,portmapping}: nosetests --with-xunit transportpce_tests/test_portmapping.py
   {py27,topoPortMapping}: nosetests --with-xunit transportpce_tests/test_topoPortMapping.py
index 2a0b81734ade9d0a0a8486568b1803879df707a9..529a2e346405a73ec63ea058097901e7ab196a9a 100644 (file)
@@ -22,27 +22,29 @@ import unittest
 
 class TransportPCEPortMappingTesting(unittest.TestCase):
 
-    testtools_process1 = None
-    testtools_process2 = None
+    honeynode_process1 = None
+    honeynode_process2 = None
     odl_process = None
     restconf_baseurl = "http://localhost:8181/restconf"
 
     @classmethod
-    def __start_testtools(cls):
-        executable = ("./netconf/netconf/tools/netconf-testtool/target/"
-                      "netconf-testtool-1.5.0-SNAPSHOT-executable.jar")
+    def __start_honeynode1(cls):
+        executable = ("./honeynode/honeynode-distribution/target/honeynode-distribution-1.18.01-hc"
+                      "/honeynode-distribution-1.18.01/honeycomb-tpce")
         if os.path.isfile(executable):
-            with open('testtools1.log', 'w') as outfile:
-                cls.testtools_process1 = subprocess.Popen(
-                    ["java", "-jar", executable, "--schemas-dir", "schemas",
-                     "--initial-config-xml", "sample_configs/ord_1.2.1/sample-config-ROADM.xml",
-                     "--starting-port", "17830"],
+            with open('honeynode1.log', 'w') as outfile:
+                cls.honeynode_process1 = subprocess.Popen(
+                    [executable, "17831", "sample_configs/ord_2.1/oper-XPDRA.xml"],
                     stdout=outfile)
-            with open('testtools2.log', 'w') as outfile:
-                cls.testtools_process2 = subprocess.Popen(
-                    ["java", "-jar", executable, "--schemas-dir", "schemas",
-                     "--initial-config-xml", "sample_configs/ord_1.2.1/sample-config-XPDR.xml",
-                     "--starting-port", "17831"],
+
+    @classmethod
+    def __start_honeynode2(cls):
+        executable = ("./honeynode/honeynode-distribution/target/honeynode-distribution-1.18.01-hc"
+                      "/honeynode-distribution-1.18.01/honeycomb-tpce")
+        if os.path.isfile(executable):
+            with open('honeynode2.log', 'w') as outfile:
+                cls.honeynode_process2 = subprocess.Popen(
+                    [executable, "17830", "sample_configs/ord_2.1/oper-ROADMA.xml"],
                     stdout=outfile)
 
     @classmethod
@@ -55,21 +57,30 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
 
     @classmethod
     def setUpClass(cls):
-        cls.__start_testtools()
+        cls.__start_honeynode1()
+        time.sleep(40)
+        cls.__start_honeynode2()
+        time.sleep(40)
         cls.__start_odl()
         time.sleep(60)
 
     @classmethod
     def tearDownClass(cls):
-        cls.testtools_process1.send_signal(signal.SIGINT)
-        cls.testtools_process1.wait()
-        cls.testtools_process2.send_signal(signal.SIGINT)
-        cls.testtools_process2.wait()
         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.honeynode_process1.pid).children():
+            child.send_signal(signal.SIGINT)
+            child.wait()
+        cls.honeynode_process1.send_signal(signal.SIGINT)
+        cls.honeynode_process1.wait()
+        for child in psutil.Process(cls.honeynode_process2.pid).children():
+            child.send_signal(signal.SIGINT)
+            child.wait()
+        cls.honeynode_process2.send_signal(signal.SIGINT)
+        cls.honeynode_process2.wait()
 
     def setUp(self):
         print ("execution of {}".format(self.id().split(".")[-1]))
@@ -86,8 +97,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
 #                         'connected')
 
     def test_02_restconfAPI(self):
-        url = ("{}/config/portmapping:network/nodes/controller-config"
-               .format(self.restconf_baseurl))
+        url = ("{}/config/portmapping:network/nodes/controller-config".format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -220,7 +230,21 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
              'logical-connection-point': 'XPDR1-NETWORK1'},
             res['mapping'])
 
-    def test_11_xpdr_portmapping_CLIENT1(self):
+    def test_11_xpdr_portmapping_NETWORK2(self):
+        url = ("{}/config/portmapping:network/"
+               "nodes/XPDRA/mapping/XPDR0-NETWORK2"
+               .format(self.restconf_baseurl))
+        headers = {'content-type': 'application/json'}
+        response = requests.request(
+            "GET", url, headers=headers, auth=('admin', 'admin'))
+        self.assertEqual(response.status_code, requests.codes.ok)
+        res = response.json()
+        self.assertIn(
+            {'supporting-port': '2', 'supporting-circuit-pack-name': '1/0/2-PLUG-NET',
+             'logical-connection-point': 'XPDR0-NETWORK2'},
+            res['mapping'])
+
+    def test_12_xpdr_portmapping_CLIENT1(self):
         url = ("{}/config/portmapping:network/"
                "nodes/XPDRA/mapping/XPDR1-CLIENT1"
                .format(self.restconf_baseurl))
@@ -230,12 +254,41 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
         res = response.json()
         self.assertIn(
-            {'supporting-port': '1',
-             'supporting-circuit-pack-name': '1/0/2-PLUG-CLIENT',
+            {'supporting-port': 'C1',
+             'supporting-circuit-pack-name': '1/0/C1-PLUG-CLIENT',
              'logical-connection-point': 'XPDR1-CLIENT1'},
             res['mapping'])
 
-    def test_12_xpdr_device_disconnected(self):
+    def test_13_xpdr_portmapping_CLIENT2(self):
+        url = ("{}/config/portmapping:network/"
+               "nodes/XPDRA/mapping/XPDR1-CLIENT2"
+               .format(self.restconf_baseurl))
+        headers = {'content-type': 'application/json'}
+        response = requests.request(
+            "GET", url, headers=headers, auth=('admin', 'admin'))
+        self.assertEqual(response.status_code, requests.codes.not_found)
+        res = response.json()
+        self.assertIn(
+            {"error-type":"application","error-tag":"data-missing",
+             "error-message":"Request could not be completed because the relevant data model content does not exist "},
+            res['errors']['error'])
+
+    def test_14_xpdr_portmapping_CLIENT4(self):
+        url = ("{}/config/portmapping:network/"
+               "nodes/XPDRA/mapping/XPDR0-CLIENT4"
+               .format(self.restconf_baseurl))
+        headers = {'content-type': 'application/json'}
+        response = requests.request(
+            "GET", url, headers=headers, auth=('admin', 'admin'))
+        self.assertEqual(response.status_code, requests.codes.ok)
+        res = response.json()
+        self.assertIn(
+            {'supporting-port': 'C4',
+             'supporting-circuit-pack-name': '1/0/C4-PLUG-CLIENT',
+             'logical-connection-point': 'XPDR0-CLIENT4'},
+            res['mapping'])
+
+    def test_15_xpdr_device_disconnected(self):
         url = ("{}/config/network-topology:"
                 "network-topology/topology/topology-netconf/node/XPDRA"
                .format(self.restconf_baseurl))
@@ -246,7 +299,7 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
         time.sleep(20)
 
-    def test_13_xpdr_device_disconnected(self):
+    def test_16_xpdr_device_disconnected(self):
         url = ("{}/operational/network-topology:network-topology/topology/"
                "topology-netconf/node/XPDRA".format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
@@ -259,10 +312,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
              "error-message":"Request could not be completed because the relevant data model content does not exist "},
             res['errors']['error'])
 
-    def test_14_xpdr_device_disconnected(self):
-        url = ("{}/config/portmapping:network/"
-               "nodes/XPDRA"
-               .format(self.restconf_baseurl))
+    def test_17_xpdr_device_disconnected(self):
+        url = ("{}/config/portmapping:network/nodes/XPDRA".format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -273,9 +324,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
              "error-message":"Request could not be completed because the relevant data model content does not exist "},
             res['errors']['error'])
 
-    def test_15_rdm_device_disconnected(self):
-        url = ("{}/config/network-topology:"
-                "network-topology/topology/topology-netconf/node/ROADMA"
+    def test_18_rdm_device_disconnected(self):
+        url = ("{}/config/network-topology:network-topology/topology/topology-netconf/node/ROADMA"
                .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
@@ -284,9 +334,9 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
         self.assertEqual(response.status_code, requests.codes.ok)
         time.sleep(20)
 
-    def test_16_rdm_device_disconnected(self):
-        url = ("{}/operational/network-topology:network-topology/topology/"
-               "topology-netconf/node/ROADMA".format(self.restconf_baseurl))
+    def test_19_rdm_device_disconnected(self):
+        url = ("{}/operational/network-topology:network-topology/topology/topology-netconf/node/ROADMA"
+               .format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))
@@ -297,9 +347,8 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
              "error-message":"Request could not be completed because the relevant data model content does not exist "},
             res['errors']['error'])
 
-    def test_17_rdm_device_disconnected(self):
-        url = ("{}/config/portmapping:network/nodes/ROADMA"
-               .format(self.restconf_baseurl))
+    def test_20_rdm_device_disconnected(self):
+        url = ("{}/config/portmapping:network/nodes/ROADMA".format(self.restconf_baseurl))
         headers = {'content-type': 'application/json'}
         response = requests.request(
             "GET", url, headers=headers, auth=('admin', 'admin'))